Open yooopan opened 6 years ago
请确认下列注意事项:
当前最新版本号是: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的生成时间依然是一个瓶颈。
修改自定义词典以后,如何缩短CustomDictionary.txt.bin文件的生成时间。
立即生效(重启solr或者reload core的时候让自定义词典生效)
solr集群中有多个节点,尽量避免手工操作。
感谢反馈,目前的自定义词典机制并不适合频繁地修改更新。具体到solr等应用场景,也没有考虑同步的问题。此处提供一些可行的解决方案:
com.hankcs.hanlp.dictionary.CustomDictionary#loadMainDictionary
总之,由于人力有限,HanLP项目只能提供解决思路,而无法代替用户开发所有的功能,请见谅。
注意事项
请确认下列注意事项:
版本号
当前最新版本号是: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的生成时间依然是一个瓶颈。
期望输出
修改自定义词典以后,如何缩短CustomDictionary.txt.bin文件的生成时间。
立即生效(重启solr或者reload core的时候让自定义词典生效)
solr集群中有多个节点,尽量避免手工操作。