hankcs/hanlp-lucene-plugin

Solr中修改自定义词典如何立即生效

Open

#40 opened on Sep 6, 2018

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Java (101 forks)github user discovery
help wanted

Repository metrics

Stars
 (299 stars)
PR merge metrics
 (PR metrics pending)

Description

注意事项

请确认下列注意事项:

  • 我已仔细阅读下列文档,都没有找到答案:
  • 我已经通过Googleissue区检索功能搜索了我的问题,也没有找到答案。
  • 我明白开源社区是出于兴趣爱好聚集起来的自由社区,不承担任何责任或义务。我会礼貌发言,向每一个帮助我的人表示感谢。
  • [ x] 我在此括号内输入x打钩,代表上述事项确认完毕。

版本号

当前最新版本号是:1.6.8 我使用的版本是:1.6.8

我的问题

业务中对自定义词典的依赖比较强,比如一些行业的特殊词汇,已经解决了hanlp自定义词典在solr中的使用问题,现在遇到关于自定义词典如何立即生效的问题。问题描述如下: 首先,修改一个自定义词典,比如user_define.txt,这时候user_define.txt的修改时间大于CustomDictionary.txt.bin的修改时间,想把user_define.txt生效,需要以下步骤: 1.删除CustomDictionary.txt.bin,这时solr中缓存的有词典,调用hanlp的分词接口修改的词典文件也不会立即生效,只能手动删除CustomDictionary.txt.bin文件,然后reload core,重新调研hanlp的分词接口。

2.生成CustomDictionary.txt.bin文件的时间比较长(截图中生成一个29M的bin文件需要1分多钟),这样会影响当前core的使用。先缓存启动,当全部词典加载成功后,调用reload方法重新构建词典的方法也考虑过,但是bin的生成时间依然是一个瓶颈。

期望输出

  1. 修改自定义词典以后,如何缩短CustomDictionary.txt.bin文件的生成时间。

  2. 立即生效(重启solr或者reload core的时候让自定义词典生效)

  3. solr集群中有多个节点,尽量避免手工操作。

Contributor guide