IK 分词器与自定义词典
本章定位:Elasticsearch 默认的 standard 分词器对中文不友好。IK 分词器是中文搜索的必备插件。
定义与作用
IK 分词器是 Elasticsearch 的中文分词插件,提供 ik_smart(智能粗粒度)和 ik_max_word(最细粒度)两种模式。支持自定义词典扩展和停用词过滤。
解决的痛点:ES 默认的 standard 分词器将中文按字拆分("搜索引擎" → "搜|索|引|擎"),IK 分词器正确切分("搜索引擎" → "搜索|引擎|搜索引擎")。
完整示例:白歌帮小崔安装 IK
# 安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.0/elasticsearch-analysis-ik-7.17.0.zip
# 验证
POST /_analyze
{
"analyzer": "ik_max_word",
"text": "分布式搜索引擎"
}
# → 分布式、分布、搜索引擎、搜索、索引、引擎
自定义词典
在 IKAnalyzer.cfg.xml 中指定 ext_dict,添加"飞翔科技""黄小俪"等专有名词。
小结
IK 分词器是中文 ES 搜索的必备插件。ik_max_word 适合索引时使用(召回率高),ik_smart 适合搜索时使用(精度高)。自定义词典解决专有名词识别问题。