elasticsearch中文分词器插件elasticsearch-analysis-ik远程自定义词典热更新

2023-10-27

IK简介

IK分词器基于词库进行分词,analysis-ik内置了一些词典:主词典main.dic、姓氏词典surname.dic、量词词典quantifier.dic、后缀词典suffix.dic、介词词典preposition.dic、停词词典stopword.dic。除此之外还可以通过配置文件IKAnalyzer.cfg.xml对词库进行扩展。

analysis-ik依次从如下两个位置尝试加载IKAnalyzer.cfg.xml:

1.elasticsearch配置文件所在目录的analysis-ik目录下。

2.analysis-ik插件所在目录的config目录下。

如果两个位置均未找到会抛出FileNotFoundException异常。analysis-ik内置词典与IKAnalyzer.cfg.xml放在相同的目录中;如果没有IKAnalyzer.cfg.xml文件,则放置在上述目录2中。找不到内置词典时同样会抛出FileNotFoundException异常。

IKAnalyzer.cfg.xml配置文件如下:

<?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">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

其中配置项ext_dict和ext_stopwords的值为分号分隔的本地词典路径列表,词典路径是相对于配置文件IKAnalyzer.cfg.xml所在目录的相对路径。配置项remote_ext_dict和remote_ext_stopwords的值为分号分隔的远程词典http地址列表。

远程词典

加载词典

向配置的词典地址发送GET请求,返回内容为每行一个词的词列表。

热更新

向配置的词典地址发送HEAD请求,返回的响应头包括Last-Modified和(或)ETag,两者皆为字符串,当其中任何一个发生改变时,analysis-ik都会发送GET请求重新加载词典。

满足以上两个条件就可以在不重启elasticsearch的情况下热更新词典,当然首次更新完配置后还是需要重启一次elasticsearch的。还有一点需要额外说明的是,无论是远程扩展词典还是远程扩展停词词典发生变化,每次重新加载词典时都会将两者全部重新加载。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

elasticsearch中文分词器插件elasticsearch-analysis-ik远程自定义词典热更新 的相关文章

  • Unity使用XLua热更新流程

    xlua是由腾讯维护的一个开源项目 我们可以在github上下载这个开源项目并查看一些相关文档 官网 https github com Tencent xLua 配置文档 https github com Tencent xLua blob
  • 基于ILRuntime和Addressable搭建热更框架记录——ILRuntime踩坑记录

    前言 原本就想基于新资源管理系统来做热更 现在开始做这个事情 以下会记录一些重要步骤及所踩的坑 Unity版本 2020 1 ILRuntime版本 1 6 6 接上文 基于ILRuntime和Addressable搭建热更框架记录 接入I
  • ILRuntime学习——从零开始

    1 ILRuntime项目为基于C 的平台 例如Unity 提供了一个纯C 实现 快速 方便且可靠的IL运行时 使得能够在不支持JIT的硬件环境 如iOS 能够实现代码的热更新 2 无缝访问C 工程的现成代码 无需额外抽象脚本API 推荐的
  • Unity ToLua 之 Lua调用C#(二)

    Unity ToLua 之 Lua调用C 二 一 ToLua调用C 中的List和Dictionary 注意List和dictionary对应的泛型需要先填写到CustomSetting中 然后生成 XLua 中遍历Dictionary可以
  • 使用webpack-bundle-analyzer分析uni-app 的微信小程序包大小(HbuilderX运行)

    1 找到vue config js 文件 如果找不到 则在项目根目录下 跟pages json同一个目录下 创建一个JS文件 命名为vue config js 2 安装webpack bundle analyzer 官方网站 https g
  • Webpack配置Vue热更新

    Webpack配置Vue热更新 需要的包 cnpm i vue webpack webpack cli webpack dev server html webpack plugin clean webpack plugin style lo
  • unity新动画系统之IK动画

    国际惯例 先来一段说明 IK动画全称Inverse Kinematics 即反向动力学 牵一发而动全身的既视感 代码如下 using System Collections using System Collections Generic u
  • Roslyn 分析器规则不会使构建失败

    继从this来自 MS 的教程 我为 Roslyn 创建了一个分析器 根据页面 您可以将规则标记为DiagnosticSeverity Error 这将导致构建中断 在声明规则字段的行中 您还可以将要生成的诊断的严重性更新为错误而不是警告
  • 字典的深层复制在 Xcode 4.2 中给出分析错误

    我在 NSDictionary 类别中有以下方法来进行深度复制 效果很好 我刚刚从 Xcode 4 1 升级到 4 2 Analyze 函数针对此代码给出了两个分析器警告 如下所示 id deepCopy id dict NSMutable
  • Elasticsearch 聚合将结果转换为小写

    我玩了一下 ElasticSearch 在进行聚合时发现了一个问题 我有两个端点 A and B 在第一个中 我有第二个的父母 因此 B 中的一个或多个对象必须属于 A 中的一个对象 因此 B 中的对象有一个属性 parentId 其父级索
  • Obj-C,当“self”未设置为“[(super or self) init...]”的结果时使用的实例变量

    我知道不久前我问过类似的问题 但我仍然有点不确定 同样的事情在很多地方都发生过 当 self 未设置为 super or self init 的结果时使用的实例变量 A id initWithCoder NSCoder decoder if
  • 函数式编程语言的静态分析器,例如Scheme

    我很少看到像Racket Scheme这样的函数式编程语言的静态分析器 我什至怀疑是否有 我想为函数式语言编写一个静态分析器 比如Scheme Racket 我该怎么办 是的 有一些关于像Scheme这样的动态语言的静态分析的工作 例如 请
  • 将精确匹配排名最高的最佳 lucene 设置是什么

    当我希望精确匹配的排名高于 部分 匹配时 应使用哪些分析器进行索引和搜索 可能会在一个中设置自定义评分Similarity class 例如 当我的索引包含car parts car and car shop 索引为StandardAnal
  • Elasticsearch 计算忽略空格的术语

    使用ES 1 2 1 我的聚合 size 0 aggs cities terms field city size 300000 问题是某些城市名 称中包含空格并单独聚合 例如洛杉矶 key Los doc count 2230 key An
  • 休眠搜索 |具有 minGramSize 1 的 ngram 分析器

    我的 Hibernate Search 分析器配置存在一些问题 我的索引实体之一 Hospital 有一个字符串字段 name 其中可能包含长度为 1 40 的值 我希望能够通过仅搜索一个字符来找到一个实体 因为医院有可能只有单个字符名称
  • 如何在ElasticSearch中不进行分析?

    我不想分析 ElasticSearch 字段中的一个字段 即 e 应逐字保存和比较 这些值将包含字母 数字 空格 破折号 斜杠以及可能的其他字符 如果我没有在该字段的映射中提供分析器 则默认情况下仍使用分词器将我的逐字字符串分解为单词块 我
  • 如何分析Websphere core*.dmp 文件和Snap*.trc 文件?

    全部 我的应用程序在 websphere 应用程序服务器 7 0 上运行 我得到了一些核心转储和跟踪文件 例如 核心 20110909 164930 3828 0001 dmp and 快照 20110909 164930 3828 000
  • 为什么 Lucene QueryParser 需要分析器

    我是 Lucene 的新手 正在尝试将原始字符串解析为Query使用QueryParser 我想知道为什么QueryParser Parse 方法根本需要分析器参数吗 如果分析与查询有关 那么Analyzer处理常规时应指定Query对象以
  • Xcode 3.1.4 中内置分析器

    我想知道 Xcode 3 1 4 中内置的分析器是否使得单独使用 LLVM Clang 静态分析器变得多余 请参考这里的原文 使用 LLVM Clang 静态分析器查找内存泄漏 http www fruitstandsoftware com
  • 如何运行和理解CUDA Visual Profiler?

    我已经设置了 CUDA 5 0 并且我的 CUDA 项目运行良好 但我不知道如何使用 Visual Profiler 分析我的 CUDA 项目 如何运行它 我还需要安装更多吗 又该如何做呢 我的电脑使用Window 7 64位 CUDA 5

随机推荐

  • fwrite函数的用法示例_C语言中的fwrite()函数(带有示例)

    fwrite函数的用法示例 C中的fwrite 函数 fwrite function in C Prototype 原型 size t fwrite void buffer size t length size t count FILE f
  • Redis基础(含代码)

    1 NoSQL介绍 1 什么是NoSQL NoSQL NoSQL Not Only SQL 意思是 不仅仅是SQL 是一种全新的数据库理念 泛指非关系型的数据库 我们不能陷入一个误区 就是认为NoSQL既然很强大 是不是就不需要Oracle
  • python版佛祖保佑

    java 原版 ooOoo o8888888o 88 88 O O
  • nohup训练pytorch模型时的报错以及tmux的简单使用

    问题 在使用nohup命令后台训练pytorch模型时 关闭ssh窗口 有时会遇到下面报错 WARNING torch distributed elastic agent server api Received 1 death signal
  • Mac下IDEA常用操作整理

    目录 1 完美卸载 2 常用插件 3 一些简便的常规设置 1 更改字体大小通过ctrl 鼠标滚轮 2 代码提示不区分大小写 3 修改字体 4 修改控制台输出字体 5 设置文件编码 6 自动导包 优化导包 7 设置自动编译 8 显示行号和方法
  • 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表

    基本思路 想要合并多个升序的链表 前提是需要会合并两个升序排列的链表 具体的方法在之前的博文中有提及合并两个有序的链表 大概的思路和合并两个有序数组基本相同 就是在链表的最开始确定两个指针 根据指针来确定哪个链表的元素更小一点 将小的哪个链
  • Java的基础:双层循环

    所谓双层 双层 循环 就是在循环内部嵌套循环 特点 1 外层循环控制行 换行 内层循环控制列 内容输出 2 外层循环更新一次 内层循环更新一轮 语法 for 变量 i 循环条件 跟新变量 外层循环 循环操作1 for 变量 j 循环条件 跟
  • 学成在线笔记+踩坑(8)——课程预览、提交审核,Freemarker模板引擎

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 java黑马笔记 目录 1 模块需求分析 1 1 模块介绍 1 2 业
  • linux下使用crontab定时器,并且设置定时不执行的情况,附:项目启动遇到的一些问题和命令

    打开终端 以root用户身份登录 运行以下命令打开cron任务编辑器 crontab e 如果首次编辑cron任务 会提示选择编辑器 选择你熟悉的编辑器 比如nano或vi 并打开相应的配置文件 在编辑器中 添加一行类似以下的命令来设置定时
  • 软测入门(一)测试理念及基础知识

    软测入门理念 软件的分类 按层次划分 系统软件 应用软件 按组织划分 商业软件 开源软件 按结构划分 单机软件 软件缺陷 由来 Grace Hopper发明Cobol计算机语言 也是找出电脑程序中第一个bug的女程序员 Bug Defect
  • 上传源码到GitHub代码托管平台方法和步骤

    上传源码到GitHub的方法步骤 要在本地上传代码到GitHub第一步就是先在本地有git版本控制软件 或者你的IDE集成了git 否则一切都是徒劳 1 先下载git 地址 https git scm com downloads 2 安装G
  • 【漏洞复现】CVE-2021-45232 Apache-apisix-dashboard

    靶场搭建 修改版本号 启动环境 查看端口号为9090 用主机登录ip 9000 默认用户名 admin 默认密码 admin 点击 路由 进入路由页面 打开POC所在文件夹 cmd执行 刷新路由页面 查看路由配置 成功注入恶意 script
  • Oracle各种进程功能一览表

    在安装Oracle数据库的时候 我检查进程 发现了以下进程 功能如下 Ora pmon 是进程监视器 Process Monitor 的缩写 当取消当前的事务 或者释放进程占用的锁以及其它资源的时候 这个进程清空那些失败的进程 Ora vk
  • 谷歌Chrome小恐龙代码(自动跳,高跳,无敌,加速)

    目录 自动跳代码 无敌代码 高跳代码 可以改括号内参数 疾跑代码 可以改括号内参数 大多数浏览器都有自己的彩蛋 而今天我们分享的是谷歌Chrome 谷歌小恐龙游戏是一个浏览器自带的小游戏 断网联网状态都是可以玩的 那么如何在联网的状态下进行
  • Flask 增删改查

    基本操作 目录 基本操作 添加 查看数据 分页 详情 删除 修改 路由配置 创建模型类models from app extensions import db class Books db Model tablename tb books
  • Feign远程调用丢失请求头问题

    在业务中 需要使用A B两个模块 这些模块使用了SpringSession共享Session数据 在B模块中的业务需要用户登录后才能操作 当A调用B的业务时 在B模块中获取不到用户的Session信息 导致B模块判定该请求用户没有登录导致A
  • java基础错题总结

    1 解析 首先乘法的优先级高于加法 所以先进行y z 然后在这里 是连接符 因为头一个是字符串所以系统就认为是连接符 就成 10202 0 输出这个字符串 但如果第一个不是字符串类型的 就像 10 20 a 这个会输出 30 a 2 解析
  • gis中的加权求和工具在哪里_因果推理初探(5)——干预工具(上)

    本节将延续上一节学习的干预的有关概念 开始深入介绍几种干预的工具 后门调整 前门调整 逆概率加权等 本节将有大量公式来袭 请准备草稿纸或提前绕道 在上一节最后 我们推导出有关干预的重要公式 调整公式 它的形式如下 这个公式让我们可以通过观测
  • 为什么使用代理后不能上网了?

    在使用完代理服务器之后 有的用户可能会遇到这样的问题 明明网络正常 为什么我的浏览器不能打开网页了 今天就给大家说下具体解决方法 这里我们以IE浏览器为例 1 先打开浏览器 点击右上角的 工具 图标 然后点击下拉中的 Internet选项
  • elasticsearch中文分词器插件elasticsearch-analysis-ik远程自定义词典热更新

    IK简介 IK分词器基于词库进行分词 analysis ik内置了一些词典 主词典main dic 姓氏词典surname dic 量词词典quantifier dic 后缀词典suffix dic 介词词典preposition dic