当前位置: 首页 > article >正文

ElasticSearch 添加IK分词器

ElasticSearch 添加IK分词器

  • 前言
  • 一、IK分词器的算法
  • 二、Ik分词器的下载安装(Winows 版本)
  • 三、Ik分词器的下载安装(Linux 版本)
  • 四、验证测试(postman工具)
    • 测试 ik_smart 分词算法
    • 测试 ik_max_word 分词算法
    • 扩展字典

前言

  1. Elasticsearch(ES)内置携带了多种类型的分词器,而Standard Analyzer(单字分词)只是其中之一,并且是默认使用的分词器。
  2. IK分词器是一个专门为中文文本设计的分词工具,它不是ES的内置组件,而是一个需要单独安装和配置的插件。
  3. 在Elasticsearch中,IK分词器和Standard Analyzer是并存的关系,它们并不会互相排斥或覆盖
  4. 在Elasticsearch中,当你在创建索引时为某个字段指定了特定的分词器(比如中文分词器IK Analyzer),那么这个分词器就会被应用于该字段的文本数据,在后续的索引和查询过程中都会使用这个分词器来处理该字段的文本。
    如果你没有为字段指定分词器,Elasticsearch会使用该字段类型默认的分词器。对于文本(text)类型的字段,默认的分词器通常是Standard Analyzer,它适用于大多数英文文本的分词处理,但不适用于中文等需要特殊分词处理的文本。

一、IK分词器的算法

IK提供了两个分词算法:ik_smart和ik_max_word,其中ik smart为最少切分,ik_max_word为最细粒度划分!

ik_max_word: 会将文本做最细粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌",会穷尽各种可能的组合;

ik_smart: 会做最粗粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,国歌"。

二、Ik分词器的下载安装(Winows 版本)

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

在这里插入图片描述

注意:IK分词器插件的版本要和ElasticSearch的版本一致

我这边是v7.15.2的
在这里插入图片描述

解压安装包到 ElasticSearch 所在文件夹中的plugins目录中:

在这里插入图片描述

Windows 环境下 再启动ElasticSearch,查看IK分词器插件是否安装成功:

在这里插入图片描述

三、Ik分词器的下载安装(Linux 版本)

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

在这里插入图片描述

注意:IK分词器插件的版本要和ElasticSearch的版本一致

我这边是v7.15.2的
在这里插入图片描述

需要在plugins目录下创建ik分词器文件夹(文件夹名称一定要命名为ik,不然启动elasticsearch时候会报错的),然后在把里面的东西解压放在这个ik下面,如下:
在这里插入图片描述
解压完ik分词器安装包后,重启elasticsearch。

四、验证测试(postman工具)

使用postman工具校验

测试 ik_smart 分词算法

分词请求+入参:

请求:
http://127.0.0.1:9200/_analyze

入参:
{
  "analyzer": "ik_smart",
  "text": "海内存知己,天涯若比邻"
}

结果如下所示:
在这里插入图片描述

测试 ik_max_word 分词算法

分词请求+入参:

请求:
http://127.0.0.1:9200/_analyze

入参:
{
  "analyzer": "ik_max_word",
  "text": "海内存知己,天涯若比邻"
}

结果如下所示:
在这里插入图片描述

比较两个分词算法对同一句中文的分词结果,ik_max_word比ik_smart得到的中文词更多(从两者的英文名含义就可看出来),但这样也带来一个问题,使用ik_max_word会占用更多的存储空间。

扩展字典

从上面的举例来看,我使用 ik_max_word 算法时,分词里面没有“存知己”这个词,如果我想加该怎么办,这个时候就涉及了扩展字典的操作了。

第一步:
在ik分词器文件的config目录中新建自定义的字典文件,以.dic为后缀,并在文件中加入“存知己”
在这里插入图片描述
第二步:
然后打开 IKAnalyzer.cfg.xml 文件,把自定义的字典添加到IK的字典中:
在这里插入图片描述
第三步:
重启ES,再次测试,就发现有了“存知己”这个词了
在这里插入图片描述

参考文章
【1】ElasticSearch——IK分词器的下载及使用
【2】Elasticsearch和Kibana版本对应关系
【3】ElasticSearch在linux环境中集成IK分词器


http://www.kler.cn/a/385963.html

相关文章:

  • 网盘聚合搜索项目Aipan(爱盼)
  • 系统架构师考试18天极限备考复盘(2024年11月)
  • 论文阅读 - Causally Regularized Learning with Agnostic Data Selection
  • ‘视’不可挡:OAK相机助力无人机智控飞行!
  • 力扣 LeetCode 239. 滑动窗口最大值(Day5:栈与队列)
  • 一文说清libc、glibc、glib的发展和关系
  • 江协科技STM32学习- P38 软件SPI读写W25Q64
  • 4-1-1.C# 数据容器 - List(List 的定义、List 元素的基本操作、List 元素的遍历、List 的常用方法)
  • 智能出行助手:SpringBoot共享汽车管理平台
  • Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (三)
  • GBase 8a MPP Cluster V9安装部署
  • TikTok Spark Ads火花广告是什么?如何设置?
  • 图像算法之 OCR 识别算法:原理与应用场景
  • Unity Windows 2023 Release-Notes
  • 软考系统架构设计师论文:论面向对象的建模及应用
  • 聊一聊:今天是记者节,你觉得大模型时代还需要专业的记者与内容吗?
  • 抖音小程序流量主掘金新玩法——看广告娱乐与收益的双赢新机遇
  • MATLAB和Python及R聚类和亚群识别
  • Spring Boot 接口与单元测试
  • RHCE的学习(14)
  • MAN TruckScenes数据集:第一个用于自动驾驶卡车的大规模多模式数据集。
  • ubuntu中apt-get的默认安装路径。安装、卸载以及查看的方法总结
  • vscode使用之vscode-server离线安装
  • TCP连接如何保障数据传输安全
  • 【C++】哈希表模拟:开散列技术与哈希冲突处理
  • 这是一个bug求助帖子--安装kali 遇坑