solr4.10和solr5.x ik分词器配置,(Deprecated--2017-04-23)

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: A:配置IK-Analyzer:1、下载wltea-IK-Analyzer-2012FF-master,将IK-Analyzer-2012FF\dist中的IKAnalyzer2012_FF.jar和IKAnalyzer2012FF_u1.jar拷贝到:/home/software/solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib   (注意:

A:配置IK-Analyzer

1、下载wltea-IK-Analyzer-2012FF-master,将IK-Analyzer-2012FF\dist中的IKAnalyzer2012_FF.jar和IKAnalyzer2012FF_u1.jar拷贝到:/home/software/solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib   (注意:这个wltea-IK-Analyzer-2012FF-master针对solr-4.10的还可以,但是针对其它版本的就不给力了,但是配置分词的方式大致相同

wltea-IK-Analyzer-2012FF-master的内容如下:

 

2、将IK-Analyzer-2012FF\src中ext.dic、IKAnalyzer.cfg.xml、stopword.dic拷贝到/home/software/solr-5.3.1/server/solr-webapp/webapp/WEB-INF/classes中,拷贝完成之后的效果如下:

 

3、进入:/home/software/solr-5.3.1/server/solr/docdetection/conf,修改schema.xml,配置域的类型fieldType:

即在文件schema.xml中添加ik分词器相关的内容:

<fieldType name="text_ik" class="solr.TextField">

   <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

</fieldType>

 

4、配置field(相当于是要增加的索引字段),使用中文分词器的fieldType.即:

<!--定义field,指定field的type属性为text_ik-->

<field name="title_ik" type="text_ik" indexed="true" stored="true" />

<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>

只有指定了type=”text_ik“了,才表示要进行分词。

 

重启solr

 

发现报如下错误:

 

这是由于ik_不支持solr5.3导致的。

解决办法是:https://github.com/EugenePig/ik-analyzer-solr5  下载这个然后直接编译 按照reademe 的说明配置即可

 

5、下载zip版本,按照github上的说明,进行如下操作:

使用maven进行打包:

如果是在JDK8环境下,执行:

source /etc/profile

mvn clean install

因为我的JDK环境是JDK8,所以执行下面的操作(注意尽可能不要再本地执行下面的命令,若可以,就直接在服务器上执行吧,不然便宜出来的ik的jar包可能还是不兼容服务器上的版本,具体的问题会在本文下面介绍,并含有解决方案):

 

如果是在JDK7环境下,执行:

mvn clean -Djavac.src.version=1.7-Djavac.target.version=1.7 install

 

然后拷贝ik-analyzer-solr5-5.x.jarserver/solr-webapp/webapp/WEB-INF/lib 这个目录下:

 

solrCoreschema.xml中进行如下配置(在实际过程中,我没有这样按照github上说的这两种方式配置分词)

<fieldType name="text_ik" class="solr.TextField">  

  <analyzer type="index">

    <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" />

  </analyzer>

  <analyzer type="query">

    <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" />

  </analyzer>

</fieldType>

或者:

<fieldType name="text_ik" class="solr.TextField">  

  <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  

  <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>  

</fieldType>

 

如果在执行mvn clean install的时候报如下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project ik-analyzer-solr5: Fatal error compiling: invalid target release: 1.8 -> [Help 1]

 

请检查你的 JAVA_HOME 设置,如果 JAVA_HOME设置存在, 它可能不是JAVA8.

 

SolrCoreInitialization Failures

  • docdetection: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: JVM Error creating core [docdetection]: org/wltea/analyzer/lucene/IKAnalyzer : Unsupported major.minor version 52.0

出现上面的这个问题是本地编译的jkd版本和服务器上的jdk版本不一致导致的,可以通过在服务器上解决来解决这个问题! (比如:我本地使用的jdk版本是:1.8.0_111,服务器上使用的版本是:1.8.0_121,都是JDK1.8,但是发现并不能通用)


下载apache-maven-3.3.9-bin.tar.gz

tar -zxvf apache-maven-3.3.9-bin.tar.gz

配置环境变量:

#export JAVA_HOME=/usr/java/jdk1.7.0_79

export JAVA_HOME=/usr/local/jdk1.8.0_121

export MAVEN_HOME=/home/software/apache-maven-3.3.9

export MONGODB_HOME=/usr/local/mongodb

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin:$MONGODB_HOME/bin:$MAVEN_HOME/bin

 

将ik-analyzer-solr5-master.zip上传到solr所在的服务器。使用maven对ik-analyzer-solr5-master重新打包,

unzip ik-analyzer-solr5-master.zip

cd ik-analyzer-solr5-master

在执行之前一定要执行下面的操作,不然可能会报错

source /etc/profile     

然后再执行下面的命令

mvn clean install


假设解压后的文件夹是:/home/software/ik-analyzer-solr5-master,里面的内容是:

 

然后执行maven命令:mvn clean install

root@iZm5effj2tm01xy2qqmnlzZ:/home/software/ik-analyzer-solr5-master # cd  target/

root@iZm5effj2tm01xy2qqmnlzZ:/home/software/ik-analyzer-solr5-master/target# cp ik-analyzer-solr5-5.x.jar  /home/software/solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib/

 

root@iZm5effj2tm01xy2qqmnlzZ:/home/software/ik-analyzer-solr5-master/target# cd classes/

root@iZm5effj2tm01xy2qqmnlzZ:/home/software/ik-analyzer-solr5-master/target/classes# rm -rf org/

root@iZm5effj2tm01xy2qqmnlzZ:/home/software/ik-analyzer-solr5-master/target/classes#cp  -R *  /home/software/solr-5.3.1/server/solr-webapp/webapp/WEB-INF/classes/

 

root@xxx:/home/software/solr-5.3.1#cd/home/software/solr-5.3.1

root@xxx:/home/software/solr-5.3.1#bin/solr stop –all

root@xxx:/home/software/solr-5.3.1#bin/solr start -all -noprompt  

 

/home/software/solr-5.3.1/server/solr  (这个地方相当于是solrhome)下所有的schema.xml配置如下内容:

<fieldType name="text_ik" class="solr.TextField">

    <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

</fieldType>

 

schema.xml中的配置如下:

 

再次到浏览器访问:http://localhost:8983/solr,发现不报错了

接着同步mongodb的数据:

mongo-connector -m localhost:27017 --auto-commit-interval=1 -t http://localhost:8983/solr/docdetection -d solr_doc_manager

 

最后的分词效果是:

 

 

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
自然语言处理 Docker 容器
elasticsearch-analysis-ik分词器下载与安装
elasticsearch-analysis-ik分词器下载与安装
1651 0
elasticsearch-analysis-ik分词器下载与安装
|
3月前
|
自然语言处理
Elasticsearch+IK+pinyin自定义分词器
Elasticsearch+IK+pinyin自定义分词器
29 0
|
9月前
|
自然语言处理 关系型数据库 MySQL
|
11月前
|
JSON 自然语言处理 数据格式
ElasticSearch用ik_analyzer分词器出现报错
ElasticSearch用ik_analyzer分词器出现报错
156 0
|
12月前
|
存储 XML SQL
solr之Ik中文分析器的安装
solr之Ik中文分析器的安装
99 0
|
自然语言处理 Java 索引
Lucene&&Solr——分析器(Analyzer)
Lucene&&Solr——分析器(Analyzer)
62 0
Lucene&&Solr——分析器(Analyzer)
|
自然语言处理 算法 Java
solr配置 中文分析器 IK Analyzer下载
solr配置 中文分析器 IK Analyzer下载
165 0
|
自然语言处理 算法 Oracle
elasticsearch插件六—— 分词 IK analyzer插件安装详解
一、 IK Analyzer 介绍 IK Analyzer是一个开源的,基于Java语言开发的轻量级的中文分词工具包,最初的时候,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件,从3.0版本之后,IK逐渐成为面向java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现,IK实现了简单的分词 歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。
382 0
elasticsearch插件六—— 分词 IK analyzer插件安装详解
|
自然语言处理 Java Apache