Solr 8.11入门教程(4)中文分词

中文分词

默认对中文分词的效果并不好,我们添加IK分词。

下载

重新下载:先下载solr8版本对应的ik分词器,分词器GitHub源码地址:https://github.com/magese/ik-analyzer-solr

添加动态加载词典表功能,在不需要重启solr服务的情况下加载新增的词典。

关闭默认主词典请在IKAnalyzer.cfg.xml配置文件中设置use_main_dictfalse

ik-analyzer-8.5.0.jar下载地址

安装

下载好之后,将IK对应的jar将下载好的jar包放入solr-8.11.2/server/solr-webapp/webapp/WEB-INF/lib目录中,然后在server\solr-webapp\webapp\WEB-INF\下面创建一个classes的目录,将jar包中的5个文件(IKAnalyzer.cfg.xml , ext.dic和stopword.dic,dynamicdic.txt,ik.conf)复制到这个classes目录下。

stopword.dic和ext.dic分别为禁止词词库和扩展词库,注意,词库的的编码方式为UTF-8 无BOM的编码方式,添加新词的时候,需要注意。

dynamicdic.txt为动态词库需要配合ik.conf使用,

ik.conf中配置动态词库文件名,及上次修改版本号lastupdate,每次修改动态词库,需要更新lastupdate的值。注意修改文件 ,原文件配置的内容可能并不适用于所有项目。

  1. files为动态词典列表,可以设置多个词典表,用逗号进行分隔,默认动态词典表为dynamicdic.txt
  2. lastupdate默认值为0,每次对动态词典表修改后请+1,不然不会将词典表中新的词语添加到内存中。lastupdate采用的是int类型, lastUpdatelong类型,可以用时间戳。

dynamicdic.txt为动态词库,在此文件配置的词语不需重启服务即可加载进内存中。 以#开头的词语视为注释,将不会加载到内存中。

配置

编辑core的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>

将description字段设置为text_ik类型,重新导入数据。注意:一定要重新导入数据。

查询

到core的分词菜单中验证一下description字段是否按中文分词了,可以看到一件按照中文的分词习惯进行了分词。
xVQvS1.md.png

然后执行一下搜索,可以看到搜索"大家"已经能搜到了
xVlspR.md.png

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值