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

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

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

IK 分词安装(Win)

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

image-20200627173011026

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

image-20200627173133706

kibanna 中 使用

image-20200627173312018

IK 分词器两种分词算法

ik_smart

最少切分算法

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

image-20200627173747810

ik_max_word

最细粒度切分算法

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

image-20200627174155593

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

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

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

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

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

答案是:当然可以!

IK 分词器 自定义词典

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

image-20200627175013273

image-20200627175123333


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

image-20200627175157187

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

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

image-20200627175454063

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

image-20200627175543019

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

image-20200627175733647

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章