ES 词库热更新(实现方式一:远程词库)

这篇具有很好参考价值的文章主要介绍了ES 词库热更新(实现方式一:远程词库)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现词库热更新两种方式
1、远程词库,2、修改源码整合数据库

要求:(前提安装ik词库。下载复制到plugin,重启即可)
1、改http请求需要返回两个头部header(Last-Modified、ETag),这两个词都是字符串类型,只要一个发生变化,改插件就会去抓取新词

2、换行符\n

一分钟执行一次API

​
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
​
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
​
@RestController
@RequestMapping(value = "/extendApi")
public class ExtendController {
​
    @RequestMapping("/getThesaurus")
    public void getThesaurus(HttpServletResponse response) throws IOException {
        File file = new File("D:\\EdgeDownLoad\\elasticsearch-7.8.0-windows-x86_64\\elasticsearch-7.8.0\\plugins\\analysis-ik\\config\\ext.dic");
        FileInputStream inputStream = new FileInputStream(file);
        //缓冲
        int offset = 0;
        byte[] buffer = new byte[(int) file.length()];
        response.setHeader("Last-Modified",String.valueOf(buffer.length));
        response.setHeader("ETag",String.valueOf(buffer.length));
        while(inputStream.read(buffer, offset,(int)file.length()-1)!=-1){
​
        }
        OutputStream outputStream = response.getOutputStream();
        outputStream.write(buffer);
        outputStream.close();
        inputStream.close();
    }
}


配置远程词库(“D:\EdgeDownLoad\elasticsearch-7.8.0-windows-x86_64\elasticsearch-7.8.0\plugins\analysis-ik\config\IKAnalyzer.cfg.xml”)文章来源地址https://www.toymoban.com/news/detail-604527.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">ext.dic</entry>
     <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords"></entry>
    <!--用户可以在这里配置远程扩展字典 -->
    <entry key="remote_ext_dict">http://localhost:9091/extendApi/getThesaurus</entry> 
    <!--用户可以在这里配置远程扩展停止词字典-->
    <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
​

到了这里,关于ES 词库热更新(实现方式一:远程词库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Sigrity常见问题解决方法(持续更新)

    错误信息如下: 该问题是因为Mesh设置的过大,导致via和note在同一个mesh网格上存在粘连 解决方法是:将mesh进行auto设置 在仿真时,为了减小计算量,加快仿真速度,一般需要对所仿真的部分进行切割。对于speedem来说,切割主要是用的就是以下几个工具 其中: 用于绘制切割

    2023年04月18日
    浏览(51)
  • 【持续更新中】Unity常见问题及其解决

    否则会出现以下错误: 错误: error CS0103: The name ‘gameobject’ does not exist in the current context 解决: 脚本中获取游戏对象使用gameObject。 注:Debug.Log(“”);表示调试时输出引号中的内容。 错误: error CS1061: ‘Vector2’ does not contain a definition for ‘X’ and no accessible extension method ‘

    2024年02月01日
    浏览(90)
  • Redis缓存更新策略以及常见缓存问题

    缓存就是数据交换的缓冲区(Cache),是存储数据的临时地方,一般读写性能较好,常见缓存: Web应用中缓存有什么作用呢? 降低后端负载 提高读写效率,降低响应时间 缓存的成本: 数据的一致性成本 代码维护成本 运维成本 缓存作用模型: 给一段Redis作为缓存的具体案例代

    2024年02月16日
    浏览(48)
  • 谷粒商城项目|es的应用场景及常见问题

    es是什么 es多被用于搜索聚合分析引擎 是分布式的可以高性能查询的引擎 es应用场景 为什么不用MYSQL而用es es将数据存在内存中且可以分布式的存储数据 商品上架 商品在es中的保存 1.在es中建立索引 spu sku spu sku保存在一起防止分布查询 为了防止对象数组扁平化,商品属性字段

    2024年01月17日
    浏览(58)
  • node.js系列-常见问题处理方案(持续更新)

    `` 浏览器中我们可以这样使用: node.js中实现方案 解决方案: 修改eslint配置文件 , 举个栗子:.eslintrc.js 使用方案 今天就写到这里啦~ 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~ 大家要天天开心哦 欢迎大家指出文章需要改正之处~ 学无止境,合作共赢 欢迎路过

    2024年02月14日
    浏览(45)
  • 实际开发中,React应用常见问题【持续更新中】

    实际开发中,React应用常见问题【持续更新中】 “react-router-dom”: “^6.14.2”, “react”: “^18.2.0”, 1、监听路由 2、路由编程式导航 useNavigate() 3、路由链接导航

    2024年02月15日
    浏览(51)
  • ES常见问题(2)-ElasticSearch怎么样设置账号密码

    有时候我们也需要给ES设置账号密码,避免别人使用自己的ES操作,以保证自己的ES的数据安全 ES版本 我用的是Elasticsearch 示例版本:7. 8.0 ES自带的X-Pack密码验证 在ES版本7.0之后,默认的情况下,安装了ES,都会默认下载了 X-Pack , 不再需要自己独自下载, X-Pack是elasticsearch的一

    2023年04月17日
    浏览(45)
  • 【Java】缓存常见问题及解决方式

    由于引入缓存首先需要考虑的就是缓存更新的方式,之前在缓存更新的几种模式中我们介绍过。除了这个问题还有一些常见的问题,整理出一个表格,如下图所示: 缓存问题 产生原因 解决方案 缓存不一致 同步更新失败、异步更新 最终一致 缓存穿透 恶意攻击 空对象缓存、

    2024年02月10日
    浏览(49)
  • ES常见问题(1)-解决ElasticSearch每次只能返回10条数据

    使用ElasticSearch查询分页数据 有时候,我们需要使用ElasticSearch来分词查询,并分页返回指定的数据条数,但是当我们每次想得到分页数据条数超过十条的时候,ElasticSearch总是只能返回十条 因为ElasticSearch为了查询的速度,在默认的情况下已经设置了分页数据只能返回10条,所

    2024年02月11日
    浏览(41)
  • vben-admin 页面以及部分代码 常见问题 解析 持续更新····

    介绍 | Vben Admin (vvbin.cn) https://doc.vvbin.cn/guide/introduction.html ----------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------  

    2024年02月04日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包