IK分词器插件

什么是IK分词器?

分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如 “我爱狂神” 会被分为"我","爱","狂","神",这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。

IK提供了两个分词算法:ik_smart 和 ik_max_word,其中 ik_smart 为最少切分,ik_max_word为最细粒度划分!一会我们测试!

安装步骤

2022-08-15T07:00:17.png

  • 3、重新启动 ElasticSearch服务,在启动过程中,你可以看到正在加载"analysis-ik"插件的提示信息,服务启动后,在命令行运行elasticsearch-plugin list 命令,确认 ik 插件安装成功。

2022-08-15T07:01:03.png
2022-08-15T07:01:14.png

  • 4、在 kibana 中测试 ik 分词器,并就相关分词结果和 icu 分词器进行对比。

ik_max_word : 细粒度分词,会穷尽一个语句中所有分词可能,测试!
2022-08-15T07:01:49.png
ik_smart : 粗粒度分词,优先匹配最长词,只有1个词!
2022-08-15T07:02:15.png

  • 5、我们输入超级喜欢狂神说!发现狂神说被切分了

2022-08-15T07:02:34.png

如果我们想让系统识别“狂神说”是一个词,需要编辑自定义词库。
步骤:
(1)进入elasticsearch/plugins/ik/config目录
(2)新建一个my.dic文件,编辑内容:

狂神说

(3)修改IKAnalyzer.cfg.xml(在ik/config目录下)

<properties> 
  <comment>IK Analyzer 扩展配置</comment> 
  <!-- 用户可以在这里配置自己的扩展字典 --> 
  <entry key="ext_dict">my.dic</entry> 
  <!-- 用户可以在这里配置自己的扩展停止词字典 --> 
  <entry key="ext_stopwords">
  </entry> 
 </properties>
最后修改:2024 年 06 月 07 日
个人博客