Elasticsearch之中文分词器插件es-ik的自定义热更新词库


 

接上文:https://www.cnblogs.com/liuyong18/p/12158470.html 上文中我们了解到,词表对特定query的效果影响比较大,也是解决badcase的手段之一。

然后系统提供的通用词表和扩展词表的每次改动都需要对ES进行重启,在web系统中,这是不允许的,因此我们需要搭建一个可以不需要重启ES的动态词表,每次只需要更新远程词表的位置就可以了。

 

在IKAnalyzer.cfg.xml中,我们看到系统是支持远程词典的:

 

 

然后,我们就按照这个策略配置一个试试:

在服务器下,创建了一个php文件

http://10.145.XX.XX:8281/iamstilllive121.php   通过这个文件可以直接加载出词典内容来;

 

然后配置到“ext_stopwords”中:

 

iamstilllive121.php 的内容为:

 

 

查看 es-ik 插件的源码可以发现:

在 https://github.com/medcl/elasticsearch-analysis-ik/blob/master/src/main/java/org/wltea/analyzer/dic/Monitor.java class中:

1min词表会同步一次

 

 

 

 

所以必须保证下面两个值中至少一个发生了变化,最简单的就跟我上面一样整个时间戳就可以了。

 

有了这个,以后就可以人为控制切词结果了,没必要切的太细的也可以指定组合之后的结果就不再切分了。完美!!!!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM