【ElasticSearch】 二、IK 分词器部署和使用

2023-11-01

目录

一、IK 分词器介绍

二、IK 分词器安装和使用

2.1 IK 分词器安装

2.2 IK 分词器测试

2.2.1 ik_smart 最粗粒度拆分

2.2.2 ik_max_word 最细粒度拆分

2.3 自定义分词

2.4 定义敏感词禁用


一、IK 分词器介绍

ElasticSearch 自带有分词器,但在中文方面分词效果并不理想,这时候就需要使用 IK 分词器对中文语句进行更好的分段。

 

二、IK 分词器安装和使用

2.1 IK 分词器安装

IK分词器下载:

https://github.com/medcl/elasticsearch-analysis-ik/releases

找到与 elasticsearch 版本对应的 ik 分词器版本

将下载的压缩包上传到服务器的对应目录下,解压并改名为 ik

# 解压压缩包
unzip elasticsearch-analysis-ik-5.6.8.zip

# 重命名
mv elasticsearch ik

将 ik 目录拷贝到 elasticsearch 容器中的 plugins 目录下

docker cp ./ik tom_elasticsearch:/usr/share/elasticsearch/plugins

 

2.2 IK 分词器测试

2.2.1 ik_smart 最粗粒度拆分

http://192.168.47.142:9200/_analyze?analyzer=ik_smart&pretty=true&text=%E6%88%91%E6%98%AF%E5%A4%A7%E5%85%83%E5%AE%9D

  

 

2.2.2 ik_max_word 最细粒度拆分

http://192.168.47.142:9200/_analyze?analyzer=ik_max_word&pretty=true&text=%E6%88%91%E6%98%AF%E5%A4%A7%E5%85%83%E5%AE%9D

 

2.3 自定义分词

# 进入 elasticsearch 容器
docker exec -it tom_elasticsearch /bin/bash

# 进入配置文件目录
cd /usr/share/elasticsearch/plugins/ik/config

创建自定义文件

# 创建自定义文件
vim myCustom.dic

修改 IK 分词器的配置文件

vim IKAnalyzer.cfg.xml

  

保存文件并重启 elasticsearch 容器

docker restart tom_elasticsearch

测试:

http://192.168.47.142:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是大元宝

2.4 定义敏感词禁用

# 进入 elasticsearch 容器
docker exec -it tom_elasticsearch /bin/bash

# 进入配置文件目录
cd /usr/share/elasticsearch/plugins/ik/config

创建自定义文件

# 创建自定义文件
vim myDisabled.dic

  

修改 IK 分词器的配置文件

vim IKAnalyzer.cfg.xml

  

保存文件并重启 elasticsearch 容器

docker restart tom_elasticsearch

测试:

http://192.168.47.142:9200/_analyze?analyzer=ik_smart&pretty=true&text=宇宙

 

  

 

 

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

【ElasticSearch】 二、IK 分词器部署和使用 的相关文章

  • 在ElasticSearch中搜索没有时间的日期字段值

    我的数据中有一个日期字段为 type date format dateOptionalTime 现在我的日期字段和值是 INITIAL EXTRACT DATE 2015 04 02T06 47 57 78 05 30 在搜索时 我仅根据
  • 了解elasticsearch如何在内部存储日期

    我想了解 ES 如何在其索引内部存储日期值 它会转换为 UTC 吗 我有一个日期类型的字段 t 这是映射 t type date 现在 当我向 ES 插入 添加文档时 它如何存储在索引中 t 1427700477165 从 Date now
  • Elasticsearch 中的嵌套与对象

    有人可以解释 Elasticsearch 文档中 对象 和 嵌套 字段之间的区别吗 我知道默认情况下字段被定义为对象 我还知道我可以用这样的点访问对象字段 my field name my field title 等 对象的文档 http
  • 如何提高elasticsearch中的索引类型?

    我以前是这样搜索的 curl XGET localhost 9200 users search 但 users 包含用户 a b c 如下所示 curl XGET localhost 9200 users a b c search user
  • 在 Elasticsearch 中对具有一个值的属性进行多个值查询

    我正在尝试在这个查询的基础上进行一些构建 我正在搜索的索引还有一个带有 id 的 实体 字段 因此 一些记录将具有 实体 16 实体 156 等 具体取决于实体的 ID 我需要以这样的方式扩展此查询 以便可以传递数组或某些值列表 例如 te
  • 如何使用elasticsearch进行分页?来自 vs 滚动 API

    我使用elasticsearch作为数据库来存储大量日志数据 我知道有两种方法可以进行分页 使用大小并来自 API 使用滚动API 现在我使用 from 进行分页 从前端和后端获取页面和大小参数 Java searchSourceBuild
  • 如何将2个匹配查询加入到elasticsearch的查询中?

    我想查询以下数据user id is 1 and name is John 写一个常用的SQL很容易 select from t where user id 1 and name John 但对我来说进行elasticsearch的查询并不
  • Elasticsearch:如何查询连接数?

    如何询问我的 Elasticsearch 服务器现在有多少个连接 这与插座数量相同吗 我也不知道如何获得这些数字 这与客户端的数量不同 对吧 因为每个客户端可能打开多个连接 找不到任何相关信息 但我确实发现您可以在 Elasticsearc
  • ElasticSearch 定义自定义映射与默认“_doc”映射冲突

    尝试创建自定义映射类型时会发生此问题 为第一个插入弹性创建自定义映射后想要创建 doc映射类型和冲突就发生在这里 第一步我创建一个映射 mappings properties field1 type keyword field2 type
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • Nest Elastic - 构建动态嵌套查询

    我必须使用 Nest 查询嵌套对象 但是查询是以动态方式构建的 下面的代码演示了以静态方式对嵌套 书籍 进行查询 QueryContainer qry qry new QueryStringQuery DefaultField name D
  • search_after 在弹性搜索中如何工作?

    我一直在尝试在我们的应用程序中使用 Elasticsearch 但分页限制为 10k 对我们来说实际上是一个问题 并且由于必须超时问题 滚动 API 也不是推荐的选择 我发现 Elasticsearch 有一个叫做 search after
  • Elasticsearch 数组必须和must_not

    我的 elasticsearch 数据库中有一个如下所示的文档 tags gt tag 1 tag 2 tag 3 tag A created at gt 2013 07 02 12 42 19 UTC label gt Mon super
  • Elasticsearch 关于“空索引”的查询

    在我的应用程序中 我使用了几个elasticsearch索引 它们在初始状态下不包含索引文档 我认为这可以称为 空 该文档的映射是正确且有效的 该应用程序还有一个包含实体的关系数据库 这些实体可能具有在 elasticsearch 中关联的
  • Elasticsearch:根据类型对不同字段进行排序

    我的索引中有两种类型 Event and City 我正在尝试按日期将它们全部排序 但是 每种类型的日期字段名称都不同 为了Event该值是在updated at领域和City日期是在update at其嵌套对象之一中的字段city eve
  • 在 Elasticsearch Java API 中使用 slop 维护匹配短语查询的序列顺序

    我正在尝试执行一个查询 该查询应该与短语查询类似 只是连续标记内可能存在间隙 例子 Document a b c d Search a c gt gt This should return the document Search c a g
  • ElasticSearch - 尝试在 Windows 上启动服务时出错

    昨天 我在 Windows Server 2012 R2 上完成了 ElasticSearch 的安装 并且能够正常启动 ElasticSearch 服务 今天 我安装了 Kibana 和 X Pack 但在尝试启动 ElasticSear
  • Elasticsearch 跨多个索引搜索 - 忽略不存在的索引

    我有弹性集群 其中我的索引包含当前日期 例如 example idex 2016 07 26 gt exists example idex 2016 07 25 gt exists example idex 2016 07 24 gt do
  • 在“spring-data-elasticsearch”4.0.4.RELEASE中,如何将SearchHits转换为Page?

    In spring data elasticsearch4 0 4 发布 ElasticsearchRestTemplate s queryForPage 方法已弃用 需要使用search 相反 它返回SearchHits代替Page 那么
  • 用于全文搜索和 2 亿多条记录的数据库

    我即将创建一个包含至少 2 亿个条目的庞大数据库 数据库需要可使用全文进行搜索 并且速度应该很快 我的数据库从许多不同的数据源获取数据 我需要定期导入新的或更新的数据 将我的所有数据存储在像 mysql 这样的关系数据库中 然后创建一个 n

随机推荐

  • 头歌:字符串处理

    一 字符串的拼接 将要处理的字符串存放在变量中之后 可直接加 额外 空格需要用 框起来使用 二 字符串的转换 1 获取长度 使用函数len 注意使用字符串变量和直接应用字符串内容的区别 字符串需要加 符号 创建字符串是 输入的字符串也需要加
  • Qt只出现 exited with code 3的错误

    我的这个错误是在debug的时候报错 但是release和profile是可以正常运行的 各种百度以后 还是没有找到解决办法 自己无意中尝试将mingw32改为Mingw64重新运行之后就没问题了 好神奇 虽然解决了bug 但是还是不清楚其
  • 浅谈Http长连接和Keep-Alive以及Tcp的Keepalive

    Keep Alive模式 我们知道Http协议采用 请求 应答 模式 当使用普通模式 即非Keep Alive模式时 每个请求 应答 客户端和服务器都要新建一个连接 完成之后立即断开连接 当使用Keep Alive模式时 Keep Aliv
  • 微服务开发概要设计

    Software environment requirements The software environment includes the software on which the project runs Such as web a
  • NumPy 笔记(超级全!收藏√)

    文章目录 NumPy 教程 NumPy Ndarray 对象 NumPy 数据类型 数据类型对象 dtype NumPy 读取数据 NumPy 数组属性 ndarray ndim ndarray shape ndarray itemsize
  • myslq主从同步和常用命令

    MySQL 5 7 multi source replication 简单的说就是一从多主 从5 7后MySQL开始支持 环境资源 现有4台pc Ip OS alias 172 171 17 144 fedora linux 24 slav
  • centos7使用镜像作为本地yum源

    搭建本地yum源 配置网络 配置网络命令 可使用Tab键辅助 nmcli connection modify ens33 ipv4 method manual ipv4 addresses 192 168 131 161 24 ipv4 g
  • 基于ESP8266实现STM32的远程IAP程序升级(2)

    第二节 串口IAP程序改良 2 1 一种简单直观的方法 2 2 另一种改良版直观方法 2 3 通用IAP升级方法 正点原子的例程仅实现了从IAP至APP程序的跳转 并不能从APP跳转回IAP程序中 但是实际应用中 当我要更新APP程序时 我
  • ElementUI浅尝辄止38:Upload 上传

    通过点击或者拖拽上传文件实现上传功能 常见于文件 文件夹或图片上传 使用挺频繁的 需要熟练掌握 1 如何使用 点击上传 通过 slot 你可以传入自定义的上传按钮类型和文字提示 可通过设置limit和on exceed来限制上传文件的个数和
  • Android开发基础 -- android studio 使用第三方模拟器连接方法,如海马玩模拟器

    安装完模拟器后 要使用adb命令Android studio才能识别出来 打开cmd 输入 adb connect 127 0 0 1 26944 如下 海马玩模拟器的端口号是26944 逍遥安卓模拟器的端口号是21503 夜神玩模拟器的端
  • 【C++】常用容器-string容器

    1 string基本概念 2 string构造函数 include
  • Job for vsftpd.service failed because the control process exited with error code

    systemctl start vsftpd serviceJob for vsftpd service failed because the control process exited with error code See syste
  • 编写一个简单的Linux内核模块

    为了在运行时动态增加和删除某个功能 Linux内核引入了内核模块这一机制 可在内核运行时加载一组目标代码来实现某个特定的功能 这样在实际使用Linux的过程中就不需要重新编译内核代码来实现动态扩展 为了深入Linux内核的学习 我们从编写一
  • docker基础篇-----03-----联合文件系统、docker镜像加载原理、 镜像的特点和优点、容器副本commit生成新镜像

    参考文章 学习笔记 尚硅谷周阳老师的Docker教程学习笔记 一 Docker镜像 1 联合文件系统 UnionFS UnionFS Union file system 是一种分层 轻量级并且高性能的文件系统 它支持对文件系统的修改作为一次
  • Pytorch Tutorial 学习笔记(四)Tensorboard

    Pytorch Tutorial 学习笔记 四 Tensorboard Pytorch官方文档 https pytorch org tutorials Tensorboard是pytorch中可视化工具 使用前需要安装pytorch ten
  • 二. Netty 入门

    Netty学习之路 一 NIO基础 二 Netty 入门 三 Netty 进阶 四 Netty 优化与源码 学完netty手写了一个rpc项目 链接 https gitee com springchuntian1 netty rpc 笔记源
  • 学习前端----1个月

    不知不觉前端已经学习了一个月 这一个月也收获了很多 从一名小菜鸟到现在的慢慢的了解 慢慢的适应 感觉每天的生活很充实 html文字介绍 文字介绍 h1 h6是标题数字越大 标题越小 p 是一个段落 br 换行 hr 水平尺 b加粗标签 em
  • 基于selenium完成滑块验证

    import time from selenium import webdriver from selenium webdriver common by import By import cv2 from selenium webdrive
  • 博途v15模拟量转换_通过实例玩转博途之信号模块参数设置及模拟量输入转换举例...

    1 信号模块的地址分配 在硬件组态完成后 I Q地址就自动分配好了 可以参见下图查看地址分配情况 2 数字量输入点的参数设置 选中某一个通道 可以激活CPU和信号板上各输入点的上升沿或下降沿中断 以及设置产生中断事件时调用硬件中断OB 3
  • 【ElasticSearch】 二、IK 分词器部署和使用

    目录 一 IK 分词器介绍 二 IK 分词器安装和使用 2 1 IK 分词器安装 2 2 IK 分词器测试 2 2 1 ik smart 最粗粒度拆分 2 2 2 ik max word 最细粒度拆分 2 3 自定义分词 2 4 定义敏感词