6.2 Elasticsearch(二)IK中文分词器

本文介绍了如何在Elasticsearch中安装和配置ik分词器,包括下载、在多个节点上安装、以及ik_max_word和ik_smart两种分词器的测试方法。分词器对提高搜索性能至关重要,通过细致的测试展示了不同分词策略的应用场景。
摘要由CSDN通过智能技术生成


1.安装 ik 分词器

ES本质上也属于一种nosql(not other sql)数据库,类似于redis,也是通过将数据存储到内存中或者永久化到磁盘中从而提升查询性能,在使用ES进行搜索时,会首先通过分词器提取所有关键字信息,通过将搜索的内容所有关键字一个词一个词拆分,通过倒排索引进行村粗,需要检索时再进行模糊检索关键字,从而获取搜索信息;

市面上常见的分词器有:

  • CJK(中日韩分词器):对中文不友好,分词方式为英文常见方式,将每俩个字符进行拆分,例如当前这句话,其会拆分为 对中、中文、文不、不友…
  • IK(中文分词器):开源的对中文友好的分词器,对于英文分词和CJK类似,但是对于中文分词会依靠其特有的中文字典进行分词,通过匹配中文字典来准确拆分出中文词汇;

1.1 下载压缩文件

从 ik 分词器项目仓库中下载 ik 分词器安装包,下载的版本需要与 Elasticsearch 版本匹配:https://github.com/medcl/elasticsearch-analysis-ik

或者可以访问 gitee 镜像仓库:https://gitee.com/mirrors/elasticsearch-analysis-ik

下载 elasticsearch-analysis-ik-7.9.3.zip 复制到 /root/ 目录下;

也可以选择将本地文件的压缩文件直接上传到/root/ 目录下;

1.2 在三个节点上安装 ik 分词器

cd ~/

# 复制 ik 分词器到三个 es 容器
docker cp elasticsearch-analysis-ik-7.9.3.zip node1:/root/
docker cp elasticsearch-analysis-ik-7.9.3.zip node2:/root/
docker cp elasticsearch-analysis-ik-7.9.3.zip node3:/root/

# 在 node1 中安装 ik 分词器
docker exec -it node1 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip

# 在 node2 中安装 ik 分词器
docker exec -it node2 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip

# 在 node3 中安装 ik 分词器
docker exec -it node3 elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-7.9.3.zip

# 重启三个 es 容器
docker restart node1 node2 node3

1.3 查看安装结果

在浏览器中访问 http://192.168.64.181:9200/_cat/plugins
在这里插入图片描述

如果插件不可用,可以卸载后重新安装:

docker exec -it node1 elasticsearch-plugin remove analysis-ik

docker exec -it node2 elasticsearch-plugin remove analysis-ik

docker exec -it node3 elasticsearch-plugin remove analysis-ik

2.ik分词测试

ik分词器提供两种分词器: ik_max_wordik_smart

  • ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国,国歌”,会穷尽各种可能的组合,适合 Term Query;
  • ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询。

2.1 ik_max_word 分词测试

使用 head 执行下面测试:
http://192.168.64.181:9200/_analyze 路径提交 POST 请求,并在协议体中提交 Json 数据:

{
  "analyzer":"ik_max_word",
  "text":"中华人民共和国国歌"
}

在这里插入图片描述

2.2 ik_smart 分词测试

使用 head 执行下面测试:
http://192.168.64.181:9200/_analyze 路径提交 POST 请求,并在协议体中提交 Json 数据:

{
  "analyzer":"ik_smart",
  "text":"中华人民共和国国歌"
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值