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

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

 

最后的分词效果是:

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值