需求说明
- 原本在IK中,所有索引共用一个词典,热更新词库也是对所有的索引有效。
- 本文实现,不同的索引,可以配置不同的词典数据
- 词典数据来自于接口,可以是文件,可以是关系型数据库mysql等
提供数据词典接口服务
-
编写一个Springboot项目
-
提供词典接口 DicController.java。数据可以根据索引名称去数据库查询,这里简单的写数据在内存中。
-
代码解读:
- 提供一个接口,根据索引名称,获取到对应的词典数据,返回值示例如下:
{ "data": { "list": [ "领域词1", "领域词2", "领域词3", "领域词4" ], "modifyTime": "2023-01-03 10:58:33" } }
- 如果索引名称中包含了“1”,那么他的词典就是index1词典
- 如果索引名称中包含了“2”,那么他的词典就是index2词典
- 启动一个定时器,延迟200秒执行 ,每200秒往index1和index2词典中添加数据。模拟字典数据更新
@CrossOrigin
@RestController
public class DicController {
@GetMapping("/dict/{indexName}")
public JSONObject stopDic(@PathVariable String indexName) {
JSONObject object = new JSONObject();
List<String> list = new ArrayList<>();
if (indexName.contains("1")) {
list.addAll(index1);
} else {
list.addAll(index2);
}
JSONObject data