Solr集成IKAnalyzer中文分词组件

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输入中文文本进行测试

原文地址:https://www.cnblogs.com/live41/p/15737296.html