首页 > 其他分享 >elasticsearch之ik分词器和自定义词库实现

elasticsearch之ik分词器和自定义词库实现

时间:2024-06-13 14:10:18浏览次数:17  
标签:词汇 自定义词 ik elasticsearch 分词器 分词 es

ElasticSearch分词器

所谓的分词就是通过tokenizer(分词器)将一个字符串拆分为多个独立的tokens(词元-独立的单词),然后输出为tokens流的过程。

例如"my name is HanMeiMei"这样一个字符串就会被默认的分词器拆分为[my,name,is HanMeiMei].ElasticSearch中提供了很多默认的分词器,我们可以来演示看看效果

 但是在ElasticSearch中提供的分词器对中文的分词效果都不好。

 所以这时我们就需要安装特定的分词器 IK,在https://github.com/medcl/elasticsearch-analysis-ik 下载对应的版本,然后解压缩

因为第一次启动docker容器的时候进行了数据卷的挂载

docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1

所以直接将解压缩后的包拖到

 这个目录下

最后重启es容器

ik分词演示

ik_smart分词

# 通过ik分词器来分词
POST /_analyze
{
"analyzer": "ik_smart"
,"text": "我是中国人,我热爱我的祖国"
}

 

ik_max_word

POST /_analyze
{
"analyzer": "ik_max_word"
,"text": "我是中国人,我热爱我的祖国"
}

 拓展词库和停用词典

在我们使用过程中我们会发现,一些新兴词汇不会被添加到词库中,如:奥里给。。。并且不是所有的词作者在编写分词器时都会知道。还有一些不敏感词汇如“的”,“了”都会被分词,占用了我们一部分内存,所以我们需要停用这些词汇

具体操作如下:

 

 打开shell控制台,找到对应的xml文件,在里面进行相应的修改

 然后在config目录下新建ext.dic

直接在里面添加你想要的词汇就行

 stopword.dic在config文件夹里面有,就不用新建了,直接打开添加你想要屏蔽的词汇就行

 最后重启一下服务

 最后测试一下生效了没

 

 能看到确实有效,ok了老铁。还有其他更多的内容去官网上看吧。拜拜了

标签:词汇,自定义词,ik,elasticsearch,分词器,分词,es
From: https://www.cnblogs.com/wjzohou/p/18245759

相关文章

  • 极限网关助力好未来 Elasticsearch 容器化升级
    极限网关在好未来的最佳实践案例,轻松扛住日增百TB数据的流量,助力ES从物理机到云原生架构的改造,实现了流控、请求分析、安全管理、无缝迁移等场景。一次完美的客户体验~背景物理机架构时代2022年,好未来整个日志Elasticsearch拥有数十套服务集群,几百台物理机。这么多台......
  • 高性能版本的零内存分配LikeString函数(ZeroMemAllocLikeOperator)
    继上一篇文章在.NETCore,除了VB的LikeString,还有其它方法吗?(四种LikeString实现分享)分享了四种实现方式,笔者对这四种实现方式,不管是执行性能还是内存分配性能上,都不太满意。那么是否有好的实现方法呢?答案是有的。今天我们就搬出ReadOnlySpan<T>这个非常好用的结构类型,它是在.N......
  • 基于phpstudy的Pikachu靶场搭建(有手就会)
    目录一、phpstudy和pikachu源码下载地址二、phpstudy创建网站,网站根目录设置为pikachu的源码文件夹1、将pikachu_master(pikachu源码文件夹)放到phpstudy的WWW目录下2、打开phpstudy,创建pikachu靶场网站三、配置pikachu靶场四、用phpstudy的mysql连接pikachu靶场的数据库......
  • 干货:TikTok限流、0播放问题怎么解决?
    针对TikTok运营中常见的流量问题,如疑似限流、零播放等,本文将为大家提供详尽的解答和策略。Q1:为何视频播放量始终难以突破几百?A1:视频播放量低,首要考虑的并非限流。内容质量是关键,建议检查视频内容是否吸引人且符合TikTok的规范。同时,网络环境稳定性也很重要,非常建议使用原生......
  • 12款高效开源Wiki系统推荐,打造团队知识管理利器
    文章介绍了12款好用的开源Wiki:PingCode、DokuWiki、MediaWiki、TikiWikiCMSGroupware、XWiki、BookStack、PMWiki、Foswiki、GitBook、Wiki.js、TiddlyWiki、Slite。以及对比了一款非开源但提供免费版本的Wiki工具,以供大家选择。在企业知识管理和团队协作中,Wiki系统因其强......
  • TIKTOK海外抖音实操班:下载注册/配置/养号/引流/发视频/等等(共17课)
    这个课程教你怎样在Tiktok上注册、设置、养号、吸引流量和发布视频。内容包括市场前景、与抖音的区别、下载和设置、网络环境、注册账号、打造优质号、找热门素材、使用热门标签和音乐、保持视频清晰度、上传技巧、避免账号被降权或封禁、优化流量下降、最佳发布时间和提高完播......
  • 删除elasticsearch数据
    删除elasticsearch数据分为两种:一种是删除索引(数据和表结构同时删除,作用同sqlserver中droptable"表格名"),另一种是删除数据(不删除表结构,作用同sqlserver中delete语句)1、查询索引curl-XGEThttp://127.0.0.1:9201/_cat/indices?vcurl-uuser:passwd -XGEThttp://127......
  • 在.NET Core,除了VB的LikeString,还有其它方法吗?(四种LikeString实现分享)
    Like运算符很好用,特别是它所提供的其中*、?这两种通配符,在Windows文件系统和各类项目中运用非常广泛。但Like运算符仅在VB中支持,在C#中,如何实现呢?以下是关于LikeString的四种实现方式,其中第四种为Regex正则表达式实现,且在.NETStandard2.0及以上平台支持。Operators.LikeStr......
  • 我在TikTok上卖车给老外,三个月入账2000万
    文雪豹财经社王亚骏抱着"反正亏不了多少钱"的心态,安岚(化名)在TikTok上试着把中国汽车卖给老外。短短一个季度,她就拿下了2000万元的营收,而投入仅2000元左右。在此之前,她从未有过任何销售工作经验。去年8月初,安岚带着一身的疲惫从某互联网大厂裸辞,“想躺一段......
  • Lucene的IK分词器学习,增加支持单个特殊符号搜索
    前言感谢CSDN这篇文章,原始代码基于这里。正常对于“[email protected]”这段文字,搜索'@'这个符号是搜不出来的。本文主要修改是扩展IK分词器,增加了对诸如"@-"这种特殊文字的检索。当然这个其实并没有多少实际意义,所以基本也是出于学习的目的。正文IK分词器分析这里不深入原理,......