Elasticsearch安装IK分词器、配置自定义分词词库

2023-11-09

一、分词简介

在Elasticsearch中,假设搜索条件是“华为手机平板电脑”,要求是只要满足了其中任意一个词语组合的数据都要查询出来。借助 Elasticseach 的文本分析功能可以轻松将搜索条件进行分词处理,再结合倒排索引实现快速检索。Elasticseach 提供了三种分词方法:单字分词,二分法分词,词库分词。
在这里插入图片描述

1、单字分词:

如:“华为手机平板电脑”
效果:“华”、“为”、“手”、“机”、“平”、“板”、“电”、“脑”

2、二分法分词:

按两个字进行切分。
如:“华为手机平板电脑”
效果:“华为”、“为手”、“手机”、“机平”、“平板”、“板电”、“电脑”。

3、词库分词:

按某种算法构造词,然后去匹配已建好的词库集合,如果匹配到就切分出来成为词语。通常词库分词被认为是最理想的中文分词算法。而词库分词最常用的就是 IK 分词。

IK 分词器提供两种分词模式:

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

ik_smart:会将文本做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase Query。

二、配置IK中文分词器

安装好ES和Kibana后,进入Kibana操作页面,使用ES默认的分词器来试一下,中文的分词效果
在这里插入图片描述

可以看到ES自带的分词器,它是简单的把每个汉字进行了分词,这肯定不是我们想要的效果
所以,我们需要自己来配置一下对中文分词支持比较好的IK分词器
IK分词器插件下载:(IK分词器要和ES版本一致)
7.8.0版:

https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip

其他版本就直接修改url上的版本号

//进入plugins目录
cd /mydata/elasticsearch/plugins    
//新建一个名字叫 ik 的文件夹
mkdir ik             
//将下载的ik分词器插件压缩包上传到ik文件夹下,然后解压zip到当前目录
unzip elasticsearch-analysis-ik-7.8.0.zip
//最后给一下ik文件夹的权限 
chmod -R 777 /mydata/elasticsearch/plugins/ik
//安装好后,检查下是否安装成功了
使用docker exec -it elasticsearch /bin/bash  命令 进入容器内部
进入容器的 cd /usr/share/elasticsearch/bin 目录
执行 elasticsearch-plugin list 命令(列出es安装的所有插件)
//如果列出了 ik 就说明es的ik中文分词器安装成功了 
//装好ik分词器后,记得重启ES容器
docker restart elasticsearch

配置好IK分词器后,再来用IK分词器看下效果
在这里插入图片描述

可以看到IK分词器对我们的中文进行了比较理想的分词

三、配置自定义分词拓展词库

IK分词器对中文有比较好的分词效果,但是它并不能对当前比较热门的网络流行词或者一些新的词进行分词处理
在这里插入图片描述

上图可以看到,IK分词器并不支持某一些词汇的分词处理
所以,我们需要配置一下自定义的分词拓展词库,来支持热门的网络流行词或新词。
1、配置自定义词库需要nginx的支持,首先需要安装好nginx

2、安装后nginx后,下边开始配置自定义的分词拓展词库

[root@192 ~]# cd /mydata/nginx/html/
[root@192 html]#
[root@192 html]# mkdir es
[root@192 html]# cd es
[root@192 html]# vi fenci.txt

在/mydata/nginx/html/ 目录下新建一个es文件夹,然后新建一个fenci.txt的文件,在里边写需要支持分词的词汇,然后保存
在这里插入图片描述

3、配置IK的拓展词库

cd /mydata/elasticsearch/plugins/ik/config
vim IKAnalyzer.cfg.xml
#把里边注释掉的这一句打开并配置成你分词文本所在的nginx访问地址
http://192.168.xx.xx/es/fenci.txt

4、重启ES容器

docker restart elasticsearch

重启后,再来看下效果
在这里插入图片描述

可以看到已经可以按照自定义的分词拓展词库来进行分词了

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

Elasticsearch安装IK分词器、配置自定义分词词库 的相关文章

随机推荐

  • Communications link failure mysql在应用启动后偶发连接断开修复

    最近应用在启动一段时间一后 就会偶发Communications link failure错误 偶尔也会报connect refused 在网上找了一圈 找到比较靠谱的说法 mysql的server端 有自动断连机制 如果一个连接超过tim
  • centos7完全卸载并重装yum和python2.7

    前言 工作中有需要用到gitlab ci cd 需要在服务器上安装 nodejs 结果因为python版本过低问题安装不了 然后在搞python升级到3版本 结果越搞越头大 环境全都搞乱了 一气之下把python全删了 结果发现yum有依赖
  • 引用账户锁定无法登录_win10登陆失败提示引用的帐户已被锁定无法登录怎么办?...

    win10系统出现了一个问题 登录失败提示 引用的帐户当前已被锁定 可能无法登录到 这是因为一直在登录界面输入错误的密码超过五次 就会被锁定导致的 该怎么解决这个问题呢 下面我们就来看看这个问题的多种解决办法 一 问题描述 1 引用的帐户目
  • HTML+CSS+JavaScript入门教程(万字)

    前言 作为一名后端开发人员 开发过程中 必不可少的与前端进行对接 因此尽管是后端开发者 也需要一定的前端知识 因此写下HTML CSS JavaScript入门知识 着重介绍了JavaScript 方便自己复习 也各位小伙伴参考 一 HTM
  • 如何营造办公室的友好氛围

    办公室有时就是一个小社会 人多嘴杂 面对各种利益冲突 你必须找准角色定位 既不能孤芳自赏 又不能表现过度 如何迅速赢得大多数人的好感 尽快融入其中 营造良好的人际关系呢 办公室5大忌 1 切忌拉小圈子 互散小道消息 办公室内切忌私自拉帮结派
  • C语言关键字之 volatile

    本文记录了C语言中 Volatile 关键字的作用 目录 变量使用 volatile 修饰 volatile 使用场景 多线程下的volatile 变量使用 volatile 修饰 告诉编译器 该变量随时会发生变化 每次使用该变量直接到内存
  • java 带参数转发_Nginx 根据URL带的参数转发的实现

    使用场景 需要根据截取url动态配置跳转路径 常见于访问内网不固定ip地址的文件图片 请求地址 http 11 19 1 212 82 bimg4 32 52 62 42 222 downloadfile filename loc 12 d
  • WPS Office AI实战:Word写作如有“神”助

    打开电脑 基本上你就会与文档打交道 是时候升级处理文档的方式了 WPS AI 的出现 给了文档处理提供了新的范式 生成文档 根据提示词生成新内容 文档分析 快速了解文档核心要点 节省阅读时间 根据你感兴趣的内容 推荐相关问题 使用WPS A
  • 【Postman】请求错误解决

    author 咔咔 wechat fangkangfk 在我们不能正常请求的时候考虑的几个问题 防火墙问题 有些防火墙可能被配置为阻止非浏览器连接 在这种情况下 应该与网络管理员联系 以便Postman可以正确工作 代理配置问题 如果我们使
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627

    摘 要 本论文主要论述了如何使用JAVA语言开发一个高校选课系统 本系统将严格按照软件开发流程进行各个阶段的工作 采用B S架构 面向对象编程思想进行项目开发 在引言中 作者将论述高校选课系统的当前背景以及系统开发的目的 后续章节将严格按照
  • linux查看ipv6 dns,云解析DNS IPv6

    转自 什么是IPV6 答 IPv6是英文 Internet Protocol Version 6 互联网协议第6版 的缩写 是互联网工程任务组 IETF 设计的用于替代IPv4的下一代IP协议 由于IPv4在网络地址资源有限 严重制约了互联
  • python: extend (扩展) 与 append (追加) 的差别

    http justjavac iteye com blog 1827915 gt gt gt li a b c gt gt gt li extend d e f gt gt gt li a b c d e f gt gt gt len li
  • 新版eclipse编写Android 时经常报的错误 -support-v7

    一 和以往一样新建完一个Android项目之后 会报android support v4 或者V7找不到的错误 这是因为这两个包在另一个附带的项目 android support v7 appcompat 下 解决办法 右键你刚才建 的项目
  • OpenCV3 VideoCapture出错Connection to tcp://192.168.15.11:554?timeout=0 failed: No route

    tcp 0x2261180 Connection to tcp 192 168 15 11 554 timeout 0 failed No route to host joinus test 7689 GStreamer CRITICAL
  • Harbor主从

    一 harbor主从方案 1 主备 简单 主挂了切到备Harbor 同一时间只有一台提供服务 适合少量镜像下载 2 双主复制 双向配置复制 两台同时提供服务 前面增加负载均衡器 3 一主多从 多个从同步主 适合多地区业务 大量镜像下载需求
  • sqli-lab学习笔记(学习笔记)(21-30)

    打完21 30之后的后记 后来发现 网上所有就是讲解sqli的 到后面都没有用查有多少字段数的order by这个语句 几乎都没有提到过 我自己也尝试在后面的变形中加入加入进去但是不知道为什么老是出错 现在我想到的办法就是 比如28a关 语
  • 游戏开发Unity杂项知识系列:Microsoft Visual C++ 2015 安装失败 0x80070666-已安装这个产品的另一个版本

    参考 https blog csdn net qq 44781435 article details 108629616 总结 系统有了一个更高版本的vc 但是与所需不匹配 必须先卸载高版本的然后再安装目标版本
  • Python Selenium搭建UI自动化测试框架

    自动化测试是软件测试中非常重要的一部分 可以提高测试效率和测试覆盖率 在UI自动化测试中 Selenium是非常流行的工具 本文将介绍如何使用Python和Selenium搭建UI自动化测试框架 一 环境准备 在开始搭建UI自动化测试框架之
  • JavaScript资源大全中文版(Awesome最新版)

    Awesome系列的JavaScript资源整理 awesome javascript是sorrycc发起维护的 JS 资源列表 内容包括 包管理器 加载器 测试框架 运行器 QA MVC框架和库 模板引擎 数据可视化 时间轴 编辑器等 前
  • Elasticsearch安装IK分词器、配置自定义分词词库

    一 分词简介 1 单字分词 2 二分法分词 3 词库分词 二 配置IK中文分词器 三 配置自定义分词拓展词库 一 分词简介 在Elasticsearch中 假设搜索条件是 华为手机平板电脑 要求是只要满足了其中任意一个词语组合的数据都要查询