背景:
使用本地的自定义词典和停用词词典每次都需要重启ES,这对线上是一个很不好的体验,于是需要进行不重启热加载分词库。
一 搭建远程词库(采用nginx)
1 配置nginx,添加以下配置。
server {
listen 8848;
server_name _1;
location /dict { alias /data/dict; autoindex on;}
}
2 在nginx配置目录下创建子定义词库和分词词库
3 远程访问词库进行测试
二 配置elasticsearch
1 配置对应的 IKAnalyzer.cfg.xml (在config/analysis-ik目录下)
<?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"></entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://*.*.*.*:8848/dict/my_ik.dict</entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<entry key="remote_ext_stopwords">http://*.*.*.*:8848/dict/my_ik_stop.dict</entry>
</properties>
2 启动(出现以下重新加载词典等字样说明配置成功)
3 测试
(1)未加入分词
(2)添加自定义分词
至此就完成热加载自定义词库和停用词词库,需要注意的是热加载会有一定延迟。