01-ElasticSearch IK分词器(中文分词器)

简介

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

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

安装

注意:版本要与ElasticSearch版本对应

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

  1. elasticsearch/plugins 目录下创建ik文件夹,然后把ik分词器压缩包解压到该目录中

  2. 注:我之前遇到elasticesearch版本为8.2.2,而ik最新版本才8.2.0,所以在plugin-descriptor.properties修改elasticsearch.version=8.2.2

  3. 然后重启ElasticSearch

  4. 使用 ElasticSearch安装补录/bin/elasticsearch-plugin 可以查看插件

    1
    E:\ElasticSearch\elasticsearch-7.6.1\bin>elasticsearch-plugin list

使用kibana测试

  1. ik_smart:最少切分

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

  3. 从上面看,感觉分词都比较正常,但是大多数,分词都满足不了我们的想法,如下例

    那么,我们需要手动将该词添加到分词器的词典当中

添加自定义的词添加到扩展字典中

修改配置文件 elasticsearch目录/plugins/ik/config/IKAnalyzer.cfg.xml,增加扩展字典

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">newadd.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
<!--用户可以在这里配置远程扩展停止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

在ik/config中增加自己的字典文件newadd.dic,配置自己的需要的字段。

1
耗子尾汁

重启ElasticSearch,再次使用kibana测试

smart


01-ElasticSearch IK分词器(中文分词器)
https://flepeng.github.io/041-ElasticSearch-15-插件-01-ElasticSearch-IK分词器-中文分词器/
作者
Lepeng
发布于
2022年3月2日
许可协议