前言
ES中默认了许多分词器,但是对中文的支持并不友好,IK分词器是一个专门为中文文本设计的分词工具,它不是ES的内置组件,而是一个需要单独安装和配置的插件。
Ik分词器的下载安装(Winows 版本)
下载地址: https://github.com/medcl/elasticsearch-analysis-ik
注意:IK分词器插件的版本要和ElasticSearch的版本一致
我的ES版本是7.8.0
在 ElasticSearch 所在文件夹中创建ik目录,并解压安装包到ik目录下
启动ES,查看日志观察是否启动成功
验证测试
可以在kibana中进行验证
ik_smart 与 ik_max_word 的异同
首先来看下官方的FAQs
What is the difference between ik_max_word and ik_smart?
ik_max_word: Performs the finest-grained segmentation of the text. For example, it will segment “中华人民共和国国歌” into “中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”, exhaustively generating various possible combinations, suitable for Term Query.
ik_smart: Performs the coarsest-grained segmentation of the text. For example, it will segment “中华人民共和国国歌” into “中华人民共和国,国歌”, suitable for Phrase queries.
Note: ik_smart is not a subset of ik_max_word.
官方这里简单的描述了一下使用用途,即:
ik_smart 比较适合 match_phrase query,而 ik_max_word 更合适 term query。
ik_smart 的分词结果并不是 ik_max_word 的分词结果的子集。
到这里ik创建安装成功!
使用的时候需要在创建索引mapping的时候指定字段的分析器(已经存在的索引,可以先删除后创建)