solr7.7.2配置自带中文分词器及IK分词器
solr7.7.2的安装请查看:https://blog.csdn.net/mdy9953MDY/article/details/104671135
这里记录两种中文分词器:smartcn 和 ik 分词器
1、solr7.X以后自带分词器(smartcn):
solr7.X之后已有内置了中文分词器,下面是内置分词器配置
1.1 将我们解压的solr-7.7.2中中文分词器jar包复制到solr项目中
输入命令:
cp /usr/local/solr-7.7.2/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-7.7.2.jar /usr/local/solr/tomcat8/webapps/solr/WEB-INF/lib/
1.2 修改我们前面在solrhome下创建的solrcore中的配置文件
输入命令:
vi /usr/local/solr/solrhome/mySolrCore/conf/managed-schema
添加如下配置:
<fieldType name="smartcn" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldType>
保存退出,重启solr服务
测试结果:
2、IK中文分词器配置
需要下载IK分词器包,在solr7.7.2安装中已经提供下载地址。
2.1 将ik分词器的jar包放到我们安装的solr工程中,我的工程地址:/usr/local/solr/tomcat8/webapps/solr/WEB-INF/lib/
2.2 将resources目录下的5个配置文件放入/usr/local/solr/tomcat8/webapps/solr/WEB-INF/classes/目录下
2.3 配置Solr的managed-schema,添加ik分词器
输入命令:
vi /usr/local/solr/solrhome/mySolrCore/conf/managed-schema
添加配置:
<!-- ik分词器 -->
<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>
重启tomcat
再次访问solr服务,如下:IK分词器配置成功
字典 分词 停词
IK分词器肯定是有字典 分词 和停词,因为词典的收录肯定是有限度,新的词汇词典中肯定还没有录入,这时我们可以自定义设置扩展
比如:
接下来把“字母哥”自定义到词典中
输入命令:
vi /usr/local/solr/tomcat8/webapps/solr/WEB-INF/classes/ext.dic
编辑:加上“字母哥” 保存退出
重启Tomcat,再次查看
但是会出现日志警告如下:
日志警告信息处理方法参考:https://www.cnblogs.com/operationhome/p/10253514.html