A:配置IK-Analyzer:
1、下载wltea-IK-Analyzer-FF-master,将IK-Analyzer-FF\dist中的IKAnalyzer_FF.jar和IKAnalyzerFF_u1.jar拷贝到:/home/software/solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib (注意:这个wltea-IK-Analyzer-FF-master针对solr-4.10的还可以,但是针对其它版本的就不给力了,但是配置分词的方式大致相同)
wltea-IK-Analyzer-FF-master的内容如下:
2、将IK-Analyzer-FF\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分词器相关的内容:
4、配置field(相当于是要增加的索引字段),使用中文分词器的fieldType.即:
只有指定了type=”text_ik“了,才表示要进行分词。
重启solr
发现报如下错误:
这是由于ik_不支持solr5.3导致的。
解决办法是:/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.jar到server/solr-webapp/webapp/WEB-INF/lib 这个目录下:
在solrCore的schema.xml中进行如下配置(在实际过程中,我没有这样按照github上说的这两种方式配置分词):
或者:
如果在执行mvn clean install的时候报如下错误:
请检查你的 JAVA_HOME 设置,如果 JAVA_HOME设置存在, 它可能不是JAVA8.
SolrCoreInitialization Failures
docdetection:org.mon.SolrException:org.mon.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
配置环境变量:
将ik-analyzer-solr5-master.zip上传到solr所在的服务器。使用maven对ik-analyzer-solr5-master重新打包,
unzipik-analyzer-solr5-master.zip
cdik-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配置如下内容:
在schema.xml中的配置如下:
再次到浏览器访问:http://localhost:8983/solr,发现不报错了
接着同步mongodb的数据:
最后的分词效果是: