es自定义ik分词器中文词库实现热更新

        基于web地址的方式实现ik分词热更新。

操作系统:win 11

es version:8.6.2

ik version:8.6.2


1、创建web服务,并提供ik查询词库接口

  • 编写分词http url代码,返回自定义分词内容
  • 分词词库数据来自业务需求,存储于业务DB,便于维护
  • 多个分词按行输出,中文分词编码UTF-8
  • http url接口返回内容编码UTF-8
  • 设置返回header头信息 ETag 为自定义词库的hash值;
  • 设置返回header头信息 Last-Modified 为自定义词库最新更新的时间

ETag和Last-Modified任意一个变化就会ik就会更新词库。

package com.david.ikremotedict.controller;

import com.david.ikremotedict.domain.IkExtDict;
import com.david.ikremotedict.domain.IkStopDict;
import com.david.ikremotedict.service.IkExtDictService;
import com.david.ikremotedict.service.IkStopDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;

/**
 * @authar David
 * @Date 2025/4/1
 * @description
 */
@Controller
@RequestMapping("/remoteDict")
public class RemoteDictController {

    //自定义分词词库
    @Autowired
    private IkExtDictService extDictService;
    @Autowired
    private IkStopDictService stopDictService;
    private final String DEFAULT_LAST_MODIFIED = "174
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值