hankcs/hanlp-lucene-plugin

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

Open

#40 创建于 2018年9月6日

在 GitHub 查看
 (1 评论) (0 反应) (0 负责人)Java (101 fork)github user discovery
help wanted

仓库指标

Star
 (299 star)
PR 合并指标
 (PR 指标待抓取)

描述

注意事项

请确认下列注意事项:

  • 我已仔细阅读下列文档,都没有找到答案:
  • 我已经通过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集群中有多个节点,尽量避免手工操作。

贡献者指南