Elastic stack技术栈学习(八)—— 安装elasticsearch IK分词器(一个插件)

为了实现查询时的部分匹配,决定安装一个IK 分词器。

一、什么是分词器

分词器就是把一段中文划分成一个个的词。

默认的中文分词其实是划分成了一个一个字,比如我们去搜索“扫描敬业福”,默认划分成的是“扫”,“描”,“敬”,“业”和“福”5个字,这显然是不符合我们的搜索想法的,我们希望能够划分成“扫描”和“敬业福”两个词。

使用中文的话可以去下载IK分词器。

IK分词器有两种分词的算法:

  • ik_smart (最少划分,切分的所有结果中不可能有重复的字)
  • ik_max_word(最细粒度划分,把所有可能的分词组合都给出来)(通过字典去指定)

二、下载安装IK分词器

注意:要和es的版本保持一致!因为我的es版本是7.16.2所以IK分词器也要下载7.16.2版本的。

1.下载安装

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

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

 下载这个.zip文件。

在es的plugin目录下,新建一个文件夹ik,将压缩包在这里解压,然后删除压缩包。

 2、重启es

可以看到在es的启动过程中,分词器被加载了。

3、使用kibana测试分词器 

分别采用最少划分、最细粒度划分两种算法,看一下区别。当然,出来下面的划分结果也说明我们的分词器安装成功了。

(1)最少划分

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "新年快乐恭喜发财"
}

 (2)最细粒度划分

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "新年快乐恭喜发财"
}

 (3)字典

存在一个问题,比如输入的文字是“我想要敬业福”,划分的结果把“敬业福”给拆开了。

 显然IK分词器所用的字典没有敬业福这个词。但是允许我们自己修改词典,以满足自定义的搜索。

那么怎样修改呢?

打开IK分析器的配置文件,如下:

里面内容如下:

 

 4、自定义字典

(1)创建扩展字典

在ik文件夹的config目录下,存放了原有字典的.dic文件。我们需要新建一个自己的“add_by_c.dicj”文件。然后加入新词。

(2)把扩展字典的文件名加入到配置文件中

(3) 重启es

重启es才能生效,当然也要重启kibana测试一下划分结果。

 “敬业福”被完整地识别为一个词了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值