Skip to content
章节导航

ElasticSearch 8.x的 ik 中文分词器配置

什么是 ik 分词器

  • 是一个基于Java开发的开源中文分词器,用于将中文文本拆分成单个词语(词项)
  • 是针对中文语言的特点和需求而设计的,可以有效处理中文分词的复杂性和多样性

地址

注意: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"
}