ElasticSearch 6.x 配置IK 扩展字典

一、安装IK https://github.com/medcl/elasticsearch-analysis-ik

(以下为官方提供的安装方法)

Install

1.download or compile

  • optional 1 - download pre-build package from here: https://github.com/medcl/elasticsearch-analysis-ik/releases

    unzip plugin to folder your-es-root/plugins/

  • optional 2 - use elasticsearch-plugin to install ( supported from version v5.5.1 ):

    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.zip
    
    

    NOTE: replace 6.2.3 to your own elasticsearch version

2.restart elasticsearch

以上是官方给出的安装示例,需要下载和 ES 版本的对应 IK 版本(官方 github 中有),windows 开发环境下下载IK 解压到 plugin 目录下即可。

二、测试 IK 分词器
#请求
POST http://39.107.70.75:9200/_analyze
{
  "analyzer": "ik_smart",
  "text":"俄罗斯世界杯即将开幕"
}
#结果
{
"tokens":[
{"token": "俄罗斯", "start_offset": 0, "end_offset": 3, "type": "CN_WORD",…},
{"token": "世界杯", "start_offset": 3, "end_offset": 6, "type": "CN_WORD",…},
{"token": "即将", "start_offset": 6, "end_offset": 8, "type": "CN_WORD",…},
{"token": "开幕", "start_offset": 8, "end_offset": 10, "type": "CN_WORD",…}
]
}

此时 IK 分词已经生效

补充:ik_max_word 和 ik_smart 什么区别?

  • IK 5.0 以后,移除名为 ik 的analyzer和tokenizer 只能使用 ik_smart 和 ik_max_word
  • ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;
  • ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。
三、扩展字典

1)修改 /elasticsearch-6.2.3/plugins/analysis-ik/config/IKAnalyzer.cfg.xml




    IK Analyzer 扩展配置
    
    ./extra_new_word.dic
     
    
    
    
    
    

2)新建 extra_new_word.dic (UTF-8编码)

继电保护通道
分相电流差动
历渤
鹤历
鹤辽
程王
蒲抚

3)重启 es
4)新增扩展词后,让历史数据生效

POST
http://39.107.70.75:9200/station_index,cable_index,transmission_index,business_index/_update_by_query?conflicts=proceed

你可能感兴趣的:(ElasticSearch 6.x 配置IK 扩展字典)