SpringBoot整合ES,ik分词器

news2024/10/5 12:57:42

"reason": "Failed to parse mapping: analyzer [ik_max_word] has not been configured in mappings"

 这是因为没有安装ES的IK分词器

下载地址 Release v8.7.0 · medcl/elasticsearch-analysis-ik · GitHub

ElasticSearch 内置了分词器,如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的中文并不友好,不能按我们的语言习惯进行分词。

ik分词器就是一个标准的中文分词器。它可以根据定义的字典对域进行分词,并且支持用户配置自己的字典,所以它除了可以按通用的习惯分词外,我们还可以定制化分词。

ik分词器是一个插件包,我们可以用插件的方式将它接入到ES。

一、安装

1.1 下载

medcl/elasticsearch-analysis-ik​github.com/medcl/elasticsearch-analysis-ik

注意:下载的包一定要和 ElasticSearch 的版本一致。点击右侧的 Releases ,选择版本

不要下载源码包

1.2 安装

将下载的zip包解压到ES的 plugins 目录即可,别忘了重启ES

以windows为例

在ES目录的plugins目录下创建ik子目录,然后将解压的内容移到里面

注意:删除拷贝过来的 elasticsearch-analysis-ik-7.12.1.zip 包

最后重启ES,界面可以看到加载的ik插件

也可以用命令查看当前加载的ik插件

重启过程可能会出现闪退情况,不要慌。按前面提到的注意事项检查

1、版本号是否匹配

2、包是否下载错

3、多余包是否删除

二 、ik分词器2种模式

ik_smart 最粗粒度的拆分

ik_max_word 最细粒度的拆分

它们其实就是2中分词算法,其区别直接通过测试观察

三、测试

ik_smart

ik_max_word

可以看出 ik_max_word 比 ik_smart 划分的词条更多,这就是它们为什么叫做最细粒度和最粗粒度。

四、自定义字典

问题:如何把 金毛狮王 拆分成“金毛”“狮王”“金毛狮王”三个词条?

默认2种模式都会拆分成 “金”“毛”“狮王”三个词条。不符合我们的要求

根据默认拆分的结果,发现我们需要增加“金毛”和“金毛狮王”2个词条并删除“金”和“毛”2个词条。这里就可以用自定义字典来实现

打开 ..\elasticsearch-7.12.1\plugins\ik\config\IKAnalyzer.cfg

可以看到有2个配置 ext_dict 和 ext_stopwords。分别是扩展和停用字典

参照默认的dic文件,在config目录新建 my_ext.dic 和 my_stop.dic

然后配置到 IKAnalyzer.cfg

重启ES。启动日志可以看到加载了我们的字典

测试

ik_max_word 正是我们想要的效果

ik_smart 只有金毛狮王一个词条

注意:配置好重启后可能发现并没有效果,不慌,检查下文件的编码格式是否UTF-8

 

Plugin [analysis-ik] was built for Elasticsearch version 8.7.0 but version 8.7.1 is running

ik分词器和es版本号不一致导致的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/517226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享Python采集240个jQuery代码,总有一款适合您

分享Python采集240个jQuery代码,总有一款适合您 Python采集的240个jQuery代码下载链接:https://pan.baidu.com/s/1S_lV6aoXOtohc3zk3r3uxA?pwd2h4r 提取码:2h4r jQuery实时搜索插件-HideSeek ps样式的jQuery颜色选择插件 colpick-jQuer…

蓝桥杯青少组python:第十三届省赛第一场

选择题 1、下列二进制中最大数是() A 110 B 1010 C 1100 D 1001 2、以下方法,不是对文件读操作的是() A readline() B readlines() C readtext() D read() 3、以下对turtle库中函数描述正确的是() A goto()函数设置当前画笔移动到原点位置…

抢先看~详细、全面的文档处理控件Aspose.words 功能一览

Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。(技术交流q群:761297826) Aspose API…

三.Android系统的启动流程

Android系统总体启动流程 Boot ROM (启动只读存储器,Loader层) 当电源按下时,引导芯片代码会从预定义的地方(固化在ROM中,Read Only Memory)开始执行,加载引导程序BootLoader到RAM(Random Access Memory),然后执行 Boot Loader (启动加载器,类似于Windows的bios系统,Loader层)…

C++:C++PrimerPlus第六版:Chapter9:内存模型和名称空间

Chapter9:内存模型和名称空间 1. C源文件组织策略我们先看下面程序清单: coordin.hmain.cppCoordin.cpp 2. 内存存储方案2.1 自动存储持续性2.2 静态存储持续变量2.3 存储方案和动态分配 本章节从三个大方面做总结 C多个源文件组织方式C存储方案C名称空间…

案例告诉你 ChatGPT 最有可能取代哪些职业

ChatGPT 的应用场景ChatGPT 最可能取代哪些职业?写在最后 ChatGPT 的应用场景 ChatGPT 的应用场景大体上可以归类为三大模块。 第一类是 代码相关 的任务场景。包含程序语言之间的相互转换(如 python 转 java)、程序命令的生成、代码 bug 的…

考虑多能负荷不确定性的区域综合能源系统鲁棒规划(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

单链表OJ题:LeetCode--21.合并两个有序链表

朋友们、伙计们,我们又见面了,今天给大家带来的是LeetCode中876题:链表的中间结点 数 据 结 构:数据结构专栏 作 者:stackY、 C 语 言 :C语言专栏 LeetCode :LeetCode刷题训练营 L…

5月16日,亚马逊云科技邀你一起探索游戏的无限可能

游戏精品化趋势越发明显,如何才能让技术帮助创意更好地实现?游戏出海如火如荼,如何才能在全球市场分一杯羹?生成式AI横空出世,如何才能充分利用,实现降本增效、利润提升?相信每个游戏人&#xf…

Word控件Spire.Doc 【文本框】教程(3):如何在 Word 中插入或删除文本框

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

基于VC + MSSQL实现的县级医院医学影像PACS

一、概述: 基于VC MSSQL实现的一套三甲医院医学影像PACS源码,集成3D后处理功能,包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。 二、医学影像PACS实现功能: 1、…

漏洞分析丨CVE-2012-1873

一、漏洞简述 cve-2012-1873同样是一个著名的堆溢出漏洞,他是IE6-8中MSHTL.dll中的CTableLayout::CalculateMinMax函数里,程序在执行时会以HTML代码中的元素span属性作为循环控制次数向堆中写入数据。第一次会优先根据span申请堆空间,当我们…

【企业信息化】第3集 免费开源ERP: Odoo 16 POS终端管理系统

文章目录 前言一、概览二、硬件三、使用功能 前言 世界排名第一的免费开源ERP: Odoo 16 POS终端管理系统。几分钟内完成设置,几秒内完成销售。 一、概览 Odoo POS 基于智能界面,任何零售公司均可毫不费力地使用 因为其极具灵活性,您可配置 …

2023最全 Java 高频面试合集,掌握这些你也能进大厂!

进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,对于 Java 后端的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很…

版本控制器git

目录 一、版本控制系统 二、工作流程和使用命令 (1)工作流程 (2)一次完整流程的相关命令 1.初始化1个空的本地仓库 2.克隆方式1个远程仓库到本地仓库 3.新文件添加到暂存区 4.查看仓库状态,显示有变更的文件 5…

Java实现杨辉三角

1 问题 实现杨辉三角。 2 方法 public class textttt01 { public static void main(String[] args) { //定义了一个长度为10&#xff0c;高度为10的二维数组&#xff0c;数组中的值都为0&#xff1b; int[][] arrnew int[10][10]; for (int i0;i<ar…

开源轻量级 IM 框架 MobileIMSDK 的Uniapp客户端库已发布

一、基本介绍 MobileIMSDK-Uniapp端是一套基于Uniapp跨端框架的即时通讯库&#xff1a; 1&#xff09;超轻量级、无任何第3方库依赖&#xff08;开箱即用&#xff09;&#xff1b;2&#xff09;纯JS编写、ES6语法、高度提炼&#xff0c;简单易用&#xff1b;3&#xff09;基于…

html实现经典捕鱼达人小游戏

文章目录 1.设计来源1.1 游戏界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/130638634 html实现经典捕鱼达人小游戏源码 &#xff0c;99.99%的还原实物&#xff0c;起…

【办公】解决京瓷打印机总是出现烦人的“在手送纸盘中装纸 彩色纸”的问题

问题 打印机是日常办公的常见工具&#xff0c;京瓷是著名的打印机品牌&#xff0c;而且是很多事业单位首选的打印机品牌。然而在日常使用中京瓷打印机总是会出现烦人的“在手送纸盘中装纸 彩色纸”的问题&#xff0c;如下图所示&#xff1a; 一旦出现该问题&#xff0c;就需要…

给XZZ准备的小攻略(私人向)

定时发送邮件功能&#xff1a; 定时发送邮件的功能位于 homework 的 views.py 中 使用的模块是 apscheduler &#xff08;我读作ap司改就&#xff09; 准备的部分&#xff1a;&#xff08;了解即可&#xff09; 安装好 django-apscheduler 后&#xff0c;在 setting.py 中添…