ElasticSearch 添加IK分词器

ElasticSearch 添加IK分词器

  • 前言
  • 一、IK分词器的算法
  • 二、Ik分词器的下载安装(Winows 版本)
  • 三、Ik分词器的下载安装(Linux 版本)
  • 四、验证测试(postman工具)
    • 测试 ik_smart 分词算法
    • 测试 ik_max_word 分词算法
    • 扩展字典

前言

  1. Elasticsearch(ES)内置携带了多种类型的分词器,而Standard Analyzer(单字分词)只是其中之一,并且是默认使用的分词器。
  2. IK分词器是一个专门为中文文本设计的分词工具,它不是ES的内置组件,而是一个需要单独安装和配置的插件。
  3. 在Elasticsearch中,IK分词器和Standard Analyzer是并存的关系,它们并不会互相排斥或覆盖
  4. 在Elasticsearch中,当你在创建索引时为某个字段指定了特定的分词器(比如中文分词器IK Analyzer),那么这个分词器就会被应用于该字段的文本数据,在后续的索引和查询过程中都会使用这个分词器来处理该字段的文本。
    如果你没有为字段指定分词器,Elasticsearch会使用该字段类型默认的分词器。对于文本(text)类型的字段,默认的分词器通常是Standard Analyzer,它适用于大多数英文文本的分词处理,但不适用于中文等需要特殊分词处理的文本。

一、IK分词器的算法

IK提供了两个分词算法:ik_smart和ik_max_word,其中ik smart为最少切分,ik_max_word为最细粒度划分!

ik_max_word: 会将文本做最细粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌",会穷尽各种可能的组合;

ik_smart: 会做最粗粒度的拆分,比如会将"中华人民共和国国歌"拆分为"中华人民共和国,国歌"。

二、Ik分词器的下载安装(Winows 版本)

下载地址: https://github.com/medcl/elasticsearch-analysis-ik

在这里插入图片描述

注意:IK分词器插件的版本要和ElasticSearch的版本一致

我这边是v7.15.2的
在这里插入图片描述

解压安装包到 ElasticSearch 所在文件夹中的plugins目录中:

在这里插入图片描述

Windows 环境下 再启动ElasticSearch,查看IK分词器插件是否安装成功:

在这里插入图片描述

三、Ik分词器的下载安装(Linux 版本)

下载地址: https://github.com/medcl/elasticsearch-analysis-ik

在这里插入图片描述

注意:IK分词器插件的版本要和ElasticSearch的版本一致

我这边是v7.15.2的
在这里插入图片描述

需要在plugins目录下创建ik分词器文件夹(文件夹名称一定要命名为ik,不然启动elasticsearch时候会报错的),然后在把里面的东西解压放在这个ik下面,如下:
在这里插入图片描述
解压完ik分词器安装包后,重启elasticsearch。

四、验证测试(postman工具)

使用postman工具校验

测试 ik_smart 分词算法

分词请求+入参:

请求:
http://127.0.0.1:9200/_analyze

入参:
{
  "analyzer": "ik_smart",
  "text": "海内存知己,天涯若比邻"
}

结果如下所示:
在这里插入图片描述

测试 ik_max_word 分词算法

分词请求+入参:

请求:
http://127.0.0.1:9200/_analyze

入参:
{
  "analyzer": "ik_max_word",
  "text": "海内存知己,天涯若比邻"
}

结果如下所示:
在这里插入图片描述

比较两个分词算法对同一句中文的分词结果,ik_max_word比ik_smart得到的中文词更多(从两者的英文名含义就可看出来),但这样也带来一个问题,使用ik_max_word会占用更多的存储空间。

扩展字典

从上面的举例来看,我使用 ik_max_word 算法时,分词里面没有“存知己”这个词,如果我想加该怎么办,这个时候就涉及了扩展字典的操作了。

第一步:
在ik分词器文件的config目录中新建自定义的字典文件,以.dic为后缀,并在文件中加入“存知己”
在这里插入图片描述
第二步:
然后打开 IKAnalyzer.cfg.xml 文件,把自定义的字典添加到IK的字典中:
在这里插入图片描述
第三步:
重启ES,再次测试,就发现有了“存知己”这个词了
在这里插入图片描述

参考文章
【1】ElasticSearch——IK分词器的下载及使用
【2】Elasticsearch和Kibana版本对应关系
【3】ElasticSearch在linux环境中集成IK分词器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android关机流程知多少?

在 Android 中,关机流程涉及系统各个组件的协同工作,确保设备在断电之前能够安全地关闭所有活动并保存数据。以下是 Android 系统中关机流程的详细介绍: 1. 用户触发关机请求 关机流程由用户的操作触发,通常有以下几种方式&#…

Golang | Leetcode Golang题解之第542题01矩阵

题目: 题解: type point struct{x, y int }var dirs []point{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func updateMatrix(mat [][]int) [][]int {var m, n len(mat), len(mat[0])var res make([][]int, m)var visited make([][]bool, m)var queue []poin…

基于ssm的小区物业管理系统

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

_处理匿名命名空间里的变量时进入硬件中断错误

最近在初次使用匿名空间时出现一个很离谱的错误,我先简单描述一下情形:在匿名命名空间里有一个变量(全局),在命名空间外,有一个内联函数操作该空间内的变量。 如果开优化,那么程序就会进入硬件错…

esp32学习:利用虫洞ESP32开发板,快速实现无线图传

我们的虫洞开发板,能够完美运行esp who AI代码,所以实现无线图传那是非常容易的,我们先看看examples目录: 里面有比较多的web例程,在这些例程下,稍作修改,就可以快速实现我的图传无线功能&#…

芯片需要按一下keyup或者复位按键虚拟或者下载之后芯片能下载却运行不了或者需要额外供电。

这些问题很有可能是因为外围电路器件幅值与设计不同的存在,导致你需要外部供电才能实现一个正常运行,可以检查一下外围电路在供电区域的电流区,电阻幅值是否和原理图设计时看的一模一样或者直接更换 因为按键会失灵,首先检查复位按…

万字长文读懂RAG

目录 RAG的整体架构设计 一、概览 1-Overview 2-Indexing 3-Retrival 4-Generation 二、优化元素提问 5-Multi Query多查询策略 6-RAG-Fusion多查询结果融合策略 7-Decomposition问题分解策略 Answer recursively Answer individually 8-Step Back问答回退策略 9…

[全网最细数据结构完整版]第六篇:3分钟带你吃透栈并模拟实现

目录 1->栈的概念和结构 1.1栈的概念 1.2栈的结构 2->栈的实现 2.1定义关于栈的结构体和各种函数 2.2栈的初始化 STInit 函数 2.3栈的销毁 STDestroy 函数 2.4栈的插入操作 STPush 函数 2.5栈的判断是否为空操作 STEmpty 函数 2.6栈的删除操作 STPop 函数 2.7…

Uniapp底部导航栏设置(附带PS填充图标教程)

首先需要注册和登录ifconfont官网,然后创建项目添加需要的图标 创建和添加图标库请参考:Uniapp在Vue环境中引入iconfont图标库(详细教程) 打开iconfont官网,找到之前添加的图标库,下载png图片 如果需要的…

k8s图形化显示(KRM)

在master节点 kubectl get po -n kube-system 这个命令会列出 kube-system 命名空间中的所有 Pod 的状态和相关信息,比如名称、状态、重启次数等。 systemctl status kubelet #查看kubelet状态 yum install git #下载git命令 git clone https://gitee.com/duk…

FTP替代方案:FileLink内外网文件摆渡,助力企业安全高效文件传输

FTP(文件传输协议)一直是企业进行文件传输的标准解决方案。但随着网络安全威胁的不断增加和企业对于文件传输效率和安全性的更高要求,FTP逐渐显得力不从心。那么,如何安全、便捷地传输大文件和敏感数据呢?FileLink作为…

Python爬虫如何处理验证码与登录

Python爬虫如何处理验证码与登录 Python 爬虫在抓取需要登录的网站数据时,通常会遇到两个主要问题:登录验证和验证码处理。这些机制是网站用来防止自动化程序过度抓取数据的主要手段。本文将详细讲解如何使用 Python 处理登录与验证码,以便进…

论文2—《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告

论文报告:基于卷积神经网络的手术机器人控制系统设计 摘要 本研究针对机器人辅助微创手术中定向障碍和缺乏导航信息的问题,设计了一种智能控制导航手术机器人系统。该系统采用可靠和安全的定位技术、7自由度机械臂以及避免关节角度限制的逆运动学控制策…

活动推荐:百度智能云与NVIDIA联合主办千帆思享会「未来领航站-空间智能」,即将启幕!

科技热爱者们,上海集合! 由百度智能云与NVIDIA联合主办的千帆思享会「未来领航站-空间智能」将于2024年11月22日(周五)14:00在上海启幕,大会聚焦AI大模型在游戏开发、动画和影视制作、GenAI(图像、3D、视频…

动态迷宫(回溯法)

题目:今天蒜头君打算测试一下动态迷宫。迷宫中有一些动态楼梯,它们每隔一分钟就变动一次方向。比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向,再过一分钟它又回到了竖直方向。蒜头君发现对他来…

C++ 【PCL】点云数据归一化、统一化处理

点云数据归一化、统一化&#xff0c;很重要&#xff0c;比如&#xff0c;你做完一个模型后&#xff0c;发现鼠标控制模型时&#xff0c;根本不是以中心点控制&#xff0c;就是因为数据没有归一化等 pcl::PointCloud<pcl::PointXYZ>::Ptr normialize(pcl::PointCloud<…

【深度学习】PromptFix:多功能AI修图

PromptFix:你来提示,我们修图 NeurIPS 2024 最近,在计算机视觉和图像处理领域,一个名为PromptFix的新项目引起了广泛关注。PromptFix是一个基于PyTorch实现的开源项目,旨在根据用户的自然语言指令,对受损或需要处理的图像进行智能修复和优化。 本文将详细介绍PromptFix…

淘宝商品详情API大揭秘:用Python开启探险之旅

淘宝&#xff0c;一个充满奇迹的丛林 在这个名为淘宝的丛林里&#xff0c;每一件商品都是一座神秘的宝藏。而我们&#xff0c;作为勇敢的探险家&#xff0c;将用Python这把瑞士军刀&#xff0c;去揭开这些宝藏的面纱。准备好了吗&#xff1f;让我们一起踏上这段奇妙的探险之旅…

【Android】名不符实的Window类

1.“名不符实”的Window类 Window 是一个窗口的概念&#xff0c;是所有视图的载体&#xff0c;不管是 Activity&#xff0c;Dialog&#xff0c;还是 Toast&#xff0c;他们的视图都是附加在 Window 上面的。例如在桌面显示一个悬浮窗&#xff0c;就需要用到 Window 来实现。Wi…

sql练习专场(一) (16-20)

第十六题&#xff1a;同时在线问题 create table sql1_16 (id int,stt string,edt string ) row format delimited fields terminated by ,; load data local inpath /home/homedata/sql_1/sql1_16.txt into table sql1_16;id stt edt 1001,2021-…