Elasticsearch自定义词库热更新方案

安装IK分词器

首先安装IK分词器,参考:https://blog.csdn.net/weixin_44062339/article/details/85059252

自定义词库

现在网络热词很多,每隔一段时间就会出现网红热词;但是如果直接使用IK分词,是识别不了这些词的;
比如:

curl -XGET 'http://hadoop01:9200/_analyze?pretty&analyzer=ik_max_word' -d '
老铁没毛病,双击666

Elasticsearch自定义词库热更新方案_第1张图片
IK并没有识别出网红的词汇;ik 的主词典中没有【老铁、没毛病】词,所以被拆分了。
修改 IK 的配置文件 :ES 目录/plugins/ik/config/ik/IKAnalyzer.cfg.xml
修改配置如下:


  
  
    IK Analyzer 扩展配置
        
    custom/my.dic     
     
    ext_stopword.dic
     
    192.168.0.1/stopworld.di
    
    

在my.di中添加:老铁、没毛病
Elasticsearch自定义词库热更新方案_第2张图片
然后重启es;在次执行:
curl -XGET ‘http://hadoop01:9200/_analyze?pretty&analyzer=ik_max_word’ -d ‘老铁没毛病,双击666’
但是,上面的操作是需要进行重启的,上面的步骤只是更新词库,并不是所谓的热更新;
所谓的热更新词库,是要在不重启es的前提下完成的;

词库热更新

1、 下载tomcat,作为远程词库的容器
需要在tomcat中配置词库
/webapp/ROOT这个路径下新建一个远程词库:

vim hot.dic

2、 测试tomcat启动后,是否能够访问:

3、 更改ik的配置:IKAnalyzer.cfg.xml
加入http://hadoop03:8080/hot.dic,如下:


        IK Analyzer 扩展配置
        
        custom/my.dic
         
        
        
        http://hadoop03:8080/hot.dic
        
        

4、 更新hot.dic之后会发现es中输出如下信息:
Elasticsearch自定义词库热更新方案_第3张图片
到此就实现了Elasticsearch自定义词库热更新。

你可能感兴趣的:(Elasticsearch,elasticsearch,自定义词库热更新)