1· 该 http 请求需要返回两个头部(header)一個是 Last-Modified,一个是 ETag这两者都是字符串类型,只要有一个发生变化该插件就会去抓取新的分词进而更新词库。
2· 该 http 请求返回的内容格式是一荇一个分词换行符用 \n 即可。
满足上面两点要求就可以实现热更新分词了不需要重启 ES 实例。
可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里放在 nginx 或其他简易 http server 下,当 .txt 文件修改时http server 会在客户端请求该文件时自动返回相应的 Last-Modified 和 ETag。可以另外做一个工具来从业务系统提取相关词汇并更新这个 .txt 文件。
本文将远程词典存入数据库示例如下:
*** hanlp中文分词器插件