当前线上系统更新词库重启集群服务有风险,亟需一套词库热更新策略,保证在不停服务的前提下,增删用户自定义词库。
- 在远程服务器Tomcat上部署词典文件
- 修改配合文件,写明远程词典地址
- 在程序启动是,创建定时线程任务ScheduledExecutorService,对应线程类Monitor
- 编写Monitor线程类,功能为发送HTTP请求并分析Last-Modify、ETags值是否变化
- 在DicLibrary类里,编写Monitor类监听到词库更新后,本地不停服务下载词典并更新词库的过程
- 远程词典初始内容
- 启动主程序分析
- 分析“明月几时有,把酒问青天”
- 词典增删改效果
- 将“问青天”从远端词库删掉
- 将“问青天”从远端词库增加
- 将“问青天”修改为“问青”,由于不符合语言学模型,所以修改无效果
- [Modify] ansj_library.properties
- [Add] src/test/java/ TestRemoteDict.java
- [Modify] pom.xml
- [Add] src/main/java/org/ansj/monitor/Monitor.java
- [Modify] src/main/java/org/ansj/library/DicLibrary.java