乐于分享
好东西不私藏

安装ES插件IK分词器

安装ES插件IK分词器

问题:为啥我们需要用到IK分词器,原因是:电商场景中,如果使用 ES 默认的分词器,比如“华为手机”,就默认拆分成“华”、“为”、“手”、“机”,这显然是不符合我们的中文语义。因此需要中文的分词器是解决这一问题,那就IK分词器
1.下载分词插件IK压缩包[elasticsearch-analysis-ik-7.14.2.zip],这里安装的7.14.2(要和ES的版本一致)

https://release.infinilabs.com/analysis-ik/stable/

2. 把压缩解压到ES的plugins目录下的ik文件夹中,我这里的目录是

# ik的解压目录/home/es/elasticsearch-7.14.2/plugins/ik 
# ik压缩包解压命令unzip elasticsearch-analysis-ik-7.14.2.zip -d /home/es/elasticsearch-7.14.2/plugins/ik

3. 重启ES,让ik分词插件生效,如果是前台启动,直接杀掉进程后重启

sudo systemctl restart elasticsearch

4. 测试分词是否生效,直接发送请求,如果返回不是一个字一个字的分词,就表示ik分词插件已经生效。

## 直接发送请求curl -X POST "localhost:9200/_analyze" -H 'Content-Type: application/json' -d'{  "analyzer""ik_max_word",  "text""我是中国人"}'
## 响应结果{"tokens":[{"token":"我","start_offset":0,"end_offset":1,"type":"CN_CHAR","position":0},{"token":"是","start_offset":1,"end_offset":2,"type":"CN_CHAR","position":1},{"token":"中国人","start_offset":2,"end_offset":5,"type":"CN_WORD","position":2},{"token":"中国","start_offset":2,"end_offset":4,"type":"CN_WORD","position":3},{"token":"国人","start_offset":3,"end_offset":5,"type":"CN_WORD","position":4}]}
5. IK 分词器的热词与定制化远程热更新(Hot Update)
    为啥要有热词和定制化更新?例如:网络热词(如“哈基米”、“绝绝子”)或新品型号(如“Mate 8

0”)如果不在词库中,会被切碎,导致搜不到。所以需要做到可以热更新-新的热词与定制化内容。
这里的更新方式是,直接通过Nginx来修改配置文件内容,IK 插件默认每分钟检查一次远程词库
## 热词和定制化内容配置文件/home/es/elasticsearch-7.14.2/plugins/ik/config/IKAnalyzer.cfg.xml
<!-- 配置远程扩展字典(核心配置) -->    <!-- remote_ext_dict 指向你的 HTTP 地址 -->    <entrykey="remote_ext_dict">http://your-server-ip:8080/dict/my_ext.dic</entry>
如果在安装IK插件时没有配置对应的热词更新,还是需要重启ES才能生效

注意:通过Nginx更新热词文件,确保文件编码为 UTF-8,否则会不生效。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 安装ES插件IK分词器

评论 抢沙发

6 + 7 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮