ElasticSearch 8.x的 ik 中文分词器配置
什么是 ik 分词器
- 是一个基于Java开发的开源中文分词器,用于将中文文本拆分成单个词语(词项)
- 是针对中文语言的特点和需求而设计的,可以有效处理中文分词的复杂性和多样性
地址
- 多个版本:https://github.com/medcl/elasticsearch-analysis-ik/releases
- 文档使用版本:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v8.4.1
注意:ElasticSearch 版本和 ik 分词器版本需要对应
特点
高效且灵活
- IK分词器采用了多种算法和数据结构,以提供高效的分词速度。
- 支持细粒度的分词,可以根据应用需求进行灵活的配置。
分词准确性
- IK分词器使用了词典和规则来进行分词,可以准确地将句子拆分成词语。
- 还提供了词性标注功能,可以帮助识别词语的不同含义和用途。
支持远程扩展词库
- IK分词器可以通过配置和加载外部词典,扩展分词的能力
- 用户可以根据实际需求,添加自定义的词典,提升分词准确性和覆盖范围。
兼容性与集成性
- IK分词器兼容了Lucene和Elasticsearch等主流搜索引擎,可以方便地集成到这些系统中。
- 提供了相应的插件和配置选项,使得分词器的集成变得简单。
安装
- 解压,上传到 Elastic Search 的 plugins 目录

- 重启 Elastic Search 即可
shell
# 切换账号
su es_root
# 进入目录
cd /usr/local/es/elasticsearch-8.4.1/bin
# 检查进程是否已经停止
ps -ef | grep elasticsearch
# 停止进程
kill -9 PID
# 重新启动
./elasticsearch &IK有两种颗粒度的拆分
- ik_smart: 会做最粗粒度的拆分(平常使用这个就行)
- ik_max_word(常用): 会将文本做最细粒度的拆分
案例实践
shell
GET /_analyze
{
"text":"今天星期一,朔风正在学习",
"analyzer":"ik_smart"
}
GET /_analyze
{
"text":"今天星期一,朔风正在学习 ElasticSearch",
"analyzer":"ik_max_word"
}
朔风