当前位置: 首页 > news >正文

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 为自定义词库最新更新的时间,注意日期格式为当前的

            源码地址 github:https://github.com/a66245753/ik-remote-dict.git

            查询扩展词url:http://127.0.0.1:8080/remoteDict/extDict

            查询停用词url:http://127.0.0.1:8080/remoteDict/stopDict 

2、ik 插件下载配置

        2.1、下载ik分词器地址:Index of:

        2.2、进入analysis-ik

        2.3、选择es对应版本 8.6.2 

        下载地址:https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.6.2.zip

         2.4、在es插件目录下新建ik目录,{es-path}\plugins\ik

         2.5、将2.3下载的压缩包解压到ik目录

          2.6、在es的config下面创建analysis-ik目录,{es-path}\config\analysis-ik

          2.7、将ik目录下config里面的文件拷贝到analysis-ik目录中

           2.8、编辑 IKAnalyzer.cfg.xml,将web服务中的数据接口地址填进去

<?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"></entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!-- 用户可以在这里配置远程扩展字典  -->
	<entry key="remote_ext_dict">http://127.0.0.1:8080/remoteDict/extDict</entry>
	<!-- 用户可以在这里配置远程扩展停止词字典 -->
	<entry key="remote_ext_stopwords">http://127.0.0.1:8080/remoteDict/stopDict</entry>
</properties>

3、启动es和kibana

        启动es的时候会看到加载plugin的日志和词库内容。

4、验证 

        4.1、没加“噜咪啦”分词前的解析

        4.2、加“噜咪啦”分词后的解析 

 经过测试ik读取web地址的频率是每分钟一次,暂时没找到强制刷新的方法。

索引字段与属性都属于静态设置,若后期变更历史数据需要重建索引才可生效
对历史数据无效!!!!一定要重建索引!!!!

重建索引:es 3期 第10节 如何正确使用Reindex重建索引_es reindex 原索更新正常使用-CSDN博客

配置文件含义:

IKAnalyzer.cfg.xml:配置自定义词库文件

main.dic:内置的中文词库

quantifier.dic:单位相关的词

suffix.dic:后缀词

surname.dic:中国姓氏

stopword.dic:英文停用词

preposition.dic:介词词典

http://www.dtcms.com/a/106810.html

相关文章:

  • 软件工程13 条法则
  • 空调开机启动后发出噼里啪啦的异响分析与解决
  • C语言--字符串逆序
  • Timer的底层实现原理?
  • LETTERS(DFS)
  • Java 递归全解析:从原理到优化的实战指南
  • Elasticsearch 正排索引
  • 内网环境将nginx的http改完https访问
  • Sentinel-自定义资源实现流控和异常处理
  • Spring事务的传播机制
  • 二叉树的ACM板子(自用)
  • 网管平台核心功能解析(七)——IP管理
  • 【Neo4j介绍】
  • web网页上实现录音功能(vue3)
  • 大模型加速器2.0:构建智能知识库,助力大模型减少“幻觉”
  • 【dp + 裴蜀定理】P8646 [蓝桥杯 2017 省 AB] 包子凑数 题解
  • ubuntu中使用安卓模拟器
  • DeepBI如何深入了解竞品的广告策略和运营动机
  • 电子竞技战队网站设计与实现(ssm+jsp+mysql)含万字详细文档
  • einsum函数
  • 技术回顾day3
  • 大语言模型在端到端智驾中的应用
  • 【Ragflow】9.问答为什么比搜索响应慢?从源码角度深入分析
  • 社交类 APP 设计:打造高用户粘性的界面
  • LE AUDIO CIS连接建立失败问题分析
  • 6.git项目实现变更拉取与上传
  • C++虚函数与抽象类
  • 使用 libevent 处理 TCP 粘包问题(基于 Content-Length 或双 \r\n)
  • 操作系统高频(七)虚拟地址与页表
  • ADASH VA5 Pro中的route功能