Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

Elasticsearch (ES) 学习之路三 IK 分词器安装与使用

IK分词器在是一款 基于词典和规则 的中文分词器,如果项目所做业务为国内业务 那么使用IK分词器 即可满足大部分 分词场景

IK 分词安装(Win)

解压上文中下载的IK 分词器压缩包 解压到 es 安装目录下的 plugins 下 新建 ik 目录

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

解压后 ,从起ES,查看是否读取插件

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

kibanna 中 使用

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

IK 分词器两种分词算法

ik_smart

最少切分算法

当前切分 算法为最少切分法 何为最少切分呢,即按照其自身词典,尽可能的减少切分次数(即分词不会非常详细)进项分词 ,不会出现 一个字多个词使用的情况下 例如 成都市 最少切分可能为 成都、市 或者成都市 一个词

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

ik_max_word

最细粒度切分算法

当前切分方法 为最细粒度切分 ,会根据其字典 尽最大可能切分 切分的非常详细 例如 切分 成都市 可能切分出 成都、都市、市等几个词

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

从上边 即可简单的理解 何为最少切分和 最细粒度切分

但是,我们也会发现一些问题,无论我是使用了最少切分还是最细粒度切分 我的"南城都汇都被拆开了" (此为我小区名)那我要是以南城都汇查询岂不是查不到了???那这时候怎么办呢??

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

首先,咱们还是得分析出现此问题的原因

前边也说了,其分词是基于自身的一个词典 进行分词的,出现此情况原因在于 ‘南城都汇’ 这个词,我们的词典没有,所以不会吧这几个字切分为词,

那么我们是不是可以根据一些业务场景自定义词典呢?

答案是:当然可以!

IK 分词器 自定义词典

进入咱们的es plugins 下 进入ik分词器 目录,发现其配置文件中 ,说明了用户是可以自定义词典的!

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典


IK 分词的核心 也是分词依据 根据词典中的字 进行分词

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

那么我们按着此模式,也新建一个词典 随意取名.dic

例如我定义一个词典 cd.dic 在其中输入我业务场景所用的南城都汇

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

在修改我们的配置文件 加入我们的自定义词典

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

从起es 测试 南城都汇 是否会分为一个完整的词汇

Elasticsearch (ES) 学习之路(三) IK 分词器安装与使用自定义词典

发现是可以的 那么说明,咱们自定义词典也完成了

目前IK 分词的基础使用就到这里,后续在项目中使用!!!