IK 分词器
简介
IK 分词器(IK Analysis) 是针对于 Elasticsearch 的一款分词插件。该插件提供了如下内容:
安装
方式一:
- 在 官方网站 上下载对应版本的压缩包
- 创建
<es_path>/plugins/ik
文件夹
- 将压缩包里的内容解压至此文件夹中
- 重启 elasticsearch
方式二:
- 进入 elasticsearch 安装根目录运行如下命令:
1
| ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/<version>/elasticsearch-analysis-ik-<version>.zip
|
试用
1 2 3 4 5
| GET <index>/_analyze { "analyzer": "ik_max_word", "text": ["白日依山尽,黄河入海流。"] }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| PUT demo { "mappings": { "properties": { "content":{ "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_smart" } } } }
POST demo/_doc { "content":"白日依山尽,黄河入海流。" }
POST demo/_doc { "content":"黄河西来决昆仑,咆哮万里触龙门。" }
POST demo/_doc { "content":"倒泻银河事有无,掀天浊浪只须臾。" }
POST demo/_search { "query" : { "match" : { "content" : "黄河" }} }
|
配置字典
在 {plugins}/elasticsearch-analysis-ik-*/config/IKAnalyzer.cfg.xml
配置文件中:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <entry key="ext_dict">custom/mydict.dic;custom/single_word_low_freq.dic</entry> <entry key="ext_stopwords">custom/ext_stopword.dic</entry> <entry key="remote_ext_dict">location</entry> <entry key="remote_ext_stopwords">http://xxx.com/xxx.dic</entry> </properties>
|
注:词典返回需要有 Header Last-Modified
和 ETag
,文件编码是 UTF-8
,一行一个词且换行符为 \n
。
参考资料
官方文档