Solr没有中文分词,需要另外添加,一般是使用IKAnalyzer
1.下载IKAnalyzer
https://github.com/magese/ik-analyzer-solr
下载jar文件,名字一般是ik-analyzer-x.x.x.jar,其中x.x.x是版本号
* 以下假定使用的版本号是Solr 8.11.0和IKAnalyzer 8.5.0
2.复制jar包到../WEB-INF/lib目录
mv ik-analyzer-8.5.0.jar /solr-8.11.0/server/solr-webapp/webapp/WEB-INF/lib
3.修改schema.xml(新版是managed-schema)
单机版:
vim /solr-8.11.0/server/solr/mycol/conf/managed-schema
加入以下内容:
<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
集群版:
先执行单机版的操作,然后把配置文件上传到ZooKeeper:
/solr-8.11.0/server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost ip1:2181,ip2:2181,ip3:2181 -confdir /solr-8.11.0/server/solr/mycol/conf -confname mycol
* SolrCloud部署的详情可参见以下文章:
https://www.cnblogs.com/live41/p/15608048.html
4.添加IKAnalyzer的自定义词库
(1) 创建classes目录
cd /solr-8.11.0/server/solr-webapp/webapp/WEB-INF/
mkdir classes
(2) 添加配置文件
解压jar包
tar -xvf ik-analyzer-8.5.0.jar
把解压出来的文件中的IKAnalyzer.cfg.xml、stopword.dic、ext.dic文件复制到classes目录
cp IKAnalyzer.cfg.xml stopword.dic ext.dic /solr-8.11.0/server/solr-webapp/webapp/WEB-INF/
IKAnalyzer.cfg.xml - 词库的配置
stopword.dic - 停用词库
ext.dic - 扩展词/生词库
5.测试
打开Solr的Admin界面,选择Collection,进入Analysis界面,在Field Value输入中文文本进行测试