ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典

  ES默认的分词器把中文每个字看作一个词,比如说:“我爱喝水”会被划分为“我”,“爱”,“喝”,“水”。显然不是很符合要求,所以我们需要安装中文分词器ik来解决这个问题。

  ik分词器提供了两个分词算法:ik_smartik_max_word ,其中ik_smart最少切分ik_max_word最细粒度划分

1.下载(版本要与ElasticSearch版本对应

https://github.com/medcl/elasticsearch-analysis-ik/releases

2.安装(解压,重启es即可)

ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第1张图片

 3.使用kibana进行测试

ik_smart:最少切分:ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第2张图片

 ik_max_word:最细粒度划分(穷尽词库的可能)

ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第3张图片

 从上面看,感觉分词都比较正常,但是大多数,分词都满足不了我们的想法,如下例:(金毛狮王是一个完整的词,不想让他乱分)ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第4张图片

 根据默认拆分的结果,发现我们需要增加“金毛”和“金毛狮王”2个词条并删除“金”和“毛”2个词条。这里就可以用自定义字典来实现

打开 ..\elasticsearch-7.12.1\plugins\ik\config\IKAnalyzer.cfg.xml

可以看到有2个配置 ext_dict 和 ext_stopwords。分别是扩展和停用字典

ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第5张图片

 参照默认的dic文件,在config目录新建 my_ext.dic 和 my_stop.dic

然后配置到 IKAnalyzer.cfg

ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第6张图片

重启ES 测试

ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第7张图片

 自定义字典:

比如说“母猪的产后护理”,我想自定义“猪的”为一组词,这样的话,默认的分词并不能满足我们的要求,所以我们需要自定义词。

1.新建自定义字典文档

ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第8张图片

2.添加新词汇到自定义字典文档

 ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第9张图片

 3.配置

编写配置文件,将新增的字典注入到配置文件中(注意 不可以配置两个自定义字典,会报错)

ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第10张图片

4.重启ES和kibana

 ElasticSearch学习 ④ IK分词器(elasticsearch插件)+自定义字典_第11张图片

 

你可能感兴趣的:(ElesticSearch,elasticsearch,学习)