首页 > 其他分享 >Solr 8.11入门教程(4)中文分词

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

时间:2022-10-31 16:14:28浏览次数:80  
标签:8.11 入门教程 词典 ik solr 词库 动态 Solr 分词

中文分词

默认对中文分词的效果并不好,我们添加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

本文由mdnice多平台发布

标签:8.11,入门教程,词典,ik,solr,词库,动态,Solr,分词
From: https://www.cnblogs.com/donggongai/p/16844640.html

相关文章

  • Solr 8.11入门教程(2)创建core
    新建core添加core命令添加使用命令比较简单~$bin/solrcreate-cmytest[core名称]这样就添加完了。CoreAdmin就可以看到了。手动添加手动添加相对复杂一些,需要提......
  • Solr 8.11入门教程(2)创建core
    新建core添加core命令添加使用命令比较简单~$bin/solrcreate-cmytest[core名称]这样就添加完了。CoreAdmin就可以看到了。手动添加手动添加相对复杂一些,需要提前创建目......
  • Solr 8.11入门教程(2)新建core
    Solr8.11入门教程(2)新建core添加core命令添加使用命令比较简单~$bin/solrcreate-cmytest[core名称]这样就添加完了。CoreAdmin就可以看到了。手动添加手动......
  • 5 分钟上手ECharts,实现数据可视化入门教程(超详细)
    ECharts介绍官网链接:​​ApacheECharts​​ECharts是一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome......
  • 微信小程序入门教程
    基本结构快捷键主目录文件app.json{"pages":["pages/index/index","pages/logs/logs"],"window":{"backgroundTextStyle":"light","na......
  • docker安装solr
    目录一、简介二、docker安装三、创建solr核心命令四、配置solr登录密码五、接口操作六、参考一、简介solr是一个基于Lucene的Java搜索引擎服务器。同时对其进行了扩展,提......
  • java多线程编程详细入门教程
    ##1、概念?线程是jvm调度的最小单元,也叫做轻量级进程,进程是由线程组成,线程拥有私有的程序技术器以及栈,并且能够访问堆中的共享资源。这里提出一个问题,为什么要用多......
  • solr - 环境变量 SOLR_HOME 的真正根目录位置
    echo"exportSOLR_HOME="${setup}${plugNme}/server/solr>>/etc/profile给环境变量配置的solr根目录位置应该是solr安装根目录里的  /server/solr  千万不要设......
  • 小破站最好的Nginx保姆级入门教程,全面掌握Nginx核心技术!
    尚硅谷2022版Nginx教程 https://www.bilibili.com/video/BV1Y341137Kq/?spm_id_from=333.337.search-card.all.click&vd_source=4a69745b599dffec877b0fcfe130b092https......
  • 全文搜索引擎Solr原理和实战教程
    Solr简介1.Solr是什么?Solr它是一种开放源码的、基于LuceneJava的搜索服务器,易于加入到Web应用程序中。Solr提供了层面搜索(就是统计)、命中醒目显示并且支持多......