Elasticsearch实现不同索引使用不同的ik分词器词典

需求说明

  • 原本在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 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值