概述
由于solr原生包对中文分词时会把每个字分成一个词,如下图:
在关键字查询时分词很不适用,所以需要我们手动添加分词jar包。solr有两种中文分词jar包,一种是solr自带的,一种是IKAnalyzer
solr自带分词
将下载的solr目录下的solr-7.7.2contribanalysis-extraslucene-libslucene-analyzers-smartcn-7.7.2.jar文件复制到solrWEB-INFlib下;
修改solrhome文件solrhomemyCoreconfmanaged-schema,这个是你创建的集合的配置文件,路径可能不同,但文件名是相同的,修改如下:
<!-- solr 自带中文分词 -->
<fieldType name="text_so" 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,选择你修改的集合,输入测试中文,选刚创建分词类型即可
可以看到上面已经成功把每个词都提取出来了。
IKAnalyzer分词
-
首先下载IKAnalyzer分词包
整理好的分词包
github -
安装配置
将下载好的jar包复制到solrWEB-INFlib下
修改solrhome文件solrhomemyCoreconfmanaged-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>
修改后重启solr,选择你修改的集合,输入测试中文,选刚创建分词类型即可
- 配置自己的中文分词规则
将上步中下载的zip包解压,将除了jar包的三个文件复制到solr的classes目录下
你可以通过修改ext.dic或者stopword.dic文件来配置你想要的分词规则,或者你也可以添加自己的分词文件,把你自己的分词文件加入到配置配置文件IKAnalyzer.cfg.xml中即可
如你可以把一些游戏名添加分词规则,如上古卷轴,流放者柯南
配置前
配置后
你若是从github上下载jar包,要用解压软件打开,把上面说的配置文件复制过去即可
最后
以上就是俏皮春天为你收集整理的solr7.7配置中文分词的全部内容,希望文章能够帮你解决solr7.7配置中文分词所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复