【ES】--Elasticsearch的分词器深度研究

目录

  • 一、问题描述及分析
  • 二、analyze分析器原理
  • 三、 multi-fields字段支持多场景搜索(如同时简繁体、拼音等)
    • 1、ts_match_analyzer配置分词
    • 2、ts_match_all_analyzer配置分词
    • 3、ts_match_1_analyzer配置分词
    • 4、ts_match_2_analyzer配置分词
    • 5、ts_match_3_analyzer配置分词
    • 6、ts_match_4_analyzer配置分词
    • 7、ts_match_5_analyzer配置分词
    • 8、ts_match_kw_analyzer配置分词

一、问题描述及分析

面对现实很多复杂情况,默认的ES搜索引擎方式已经不能支持。下面将针对常见的问题进行分析,如何使用ES的分词器达到预定效果。
常见有ik、pinyin、tsconvert三种分词器,
elasticsearch-analysis-ik
elasticsearch-analysis-pinyin
elasticsearch-analysis-stconvert

现有问题场景要求
(1)、对检索结果,要能同时搜索到简繁体、能搜索到拼音等
(2)、搜索的结果不要太零散(不要把关键词分成一个一个的字)
(3)、不希望搜索的关键词匹配到语气助词
(4)、一些特定的词语(如’中国的炎黄子孙’)不希望被分词,要能够整体匹配
面对上面等问题,分析如下:
(1)、对检索结果,要能同时搜索到简繁体、能搜索到拼音等
—对要搜索的字段进行multi-fields属性设置,使该字段能满足多场景的搜索
(2)、搜索的结果不要太零散(不要把关键词分成一个一个的字)
—ES默认的standard分词器会把汉字分为一个个汉字。ik分词器主要有ik_smart【最少切分,最粗精度】、ik_max_word【最多切分,最细精度】两种模式。
(3)、不希望搜索的关键词匹配到语气助词
—使用“停用词”来过滤掉语气助词。排除停用词可以加快建立索引的速度,减小索引库文件的大小,并且还可以提高查询的准确度。【参考https://blog.csdn.net/qq_29864051/article/details/124831207】
(4)、一些特定的词语(如’中国的炎黄子孙’)不希望被分词,要能够整体匹配
—可以通过对ik分词器添加自定义词典。另外,为了切换实际场景,可以采用“热更新自定义词典”方案。

二、analyze分析器原理

在这里插入图片描述
Char Filter:字符过滤器的工作是执行清除任务,例如剥离 HTML 标记,还有上面的把 “&” 转换为 “and” 字符串。
Tokenizer:将文本基于任何规则拆分为称为标记的术语。一般此时如ik分词器的模式起作用。
Token filter:一旦创建了token,它们就会被传递给 token filter,这些过滤器会对 token 进行规范化。 Token filter 可以更改 token,删除术语或向 token 添加术语。

三、 multi-fields字段支持多场景搜索(如同时简繁体、拼音等)

给某个字段设置多个属性的fields。如下所示

   "file_extension": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256,"normalizer": "lowercase_normalizer"},"pinyin": {"type": "text","analyzer": "pinyin_analyzer"},"pure": {"type": "text","analyzer": "ts_match_all_analyzer"},"pure1": {"type": "text","analyzer": 

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

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

相关文章

ctfshow-文件上传(web151-web161)

目录 web151 web152 web153 web154 web155 web156 web157 web158 web159 web160 web161 web151 提示前台验证不可靠 那限制条件估计就是在前端设置的 上传php小马后 弹出了窗口说不支持的格式 查看源码 这一条很关键 这种不懂直接ai搜 意思就是限制了上传类型 允许…

Ubuntu Desktop - Files Preferences

Ubuntu Desktop - Files Preferences 1. Behavior2. ViewsReferences 1. Behavior Go to file browser’s Menu -> Edit -> Preferences -> Behavior 2. Views Go to file browser’s Menu -> Edit -> Preferences -> Views ​​​ References [1] Yong…

EMC学习笔记(二十五)降低EMI的PCB设计指南(五)

线缆和连接器 1 差模和共模噪声2 串扰3 返回路径数量4 外部PCB -IO 布局建议5 防止噪音和静电放电 tips:资料主要来自网络,仅供学习使用。 设计良好的两层板,和大多数四层板,有最小的辐射。系统级的问题是由于将PCB与任何板外支持…

vector容器

1. vector基本概念 1.1 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后续接新空间,而是找更…

视频讲解:优化柱状图

你好,我是郭震 AI数据可视化 第三集:美化柱状图,完整视频如下所示: 美化后效果前后对比,前: 后: 附完整案例源码: util.py文件 import platformdef get_os():os_name platform.syst…

方舟基金:若美机构按最大夏普率配置比特币,则有望将其推升至230-250万美元...

号外:教链内参2.12《方舟基金重磅报告〈大胆想象2024〉全文pdf》 方舟基金(Ark Invest)的木头姐(Cathie Wood)是业内的老熟人了。她一向以大胆的预测而著称。比如就在2023年10月份,木头姐在采访中就曾直言&…

MIT-BEVFusion系列七--量化2_Camera、Fuser、Decoder网络的量化

目录 Camera 量化Camera Backbone (Resnet50) 量化替换量化层,增加residual_quantizer,修改bottleneck的前向对 Add 操作进行量化 Camera Neck (GeneralizedLSSFPN) 量化将 Conv2d 模块替换为 QuantConv2d 模块Camera Neck 中添加对拼接操作的量化替换 C…

STM32自学☞对射式红外传感器计数

infrared_count.c文件 /* 编写步骤 一、初始化函数 1.开启GPIO、AFIO时钟 (NVIC和EXIT不需要开启,因为EXIT时钟一直处于开启状态,而NVIC是内核里的外设和CPU处在一起且RCC管理的是内核外的外设,综上所述,所以不用开启) 2.配…

【机器学习】卷积和反向传播

一、说明 自从 AlexNet 在 2012 年赢得 ImageNet 竞赛以来,卷积神经网络 (CNN) 就变得无处不在。从不起眼的 LeNet 到 ResNets 再到 DenseNets,CNN 无处不在。 您是否想知道 CNN 的反向传播中会发生什么,特别是反向传播在 CNN 中的工作原理。…

Stream流学习笔记

Stream流 创建流中间操作1、filter2、map3、distinct4、sorted5、limit6、skip7、flatMap 终结操作1、forEach2、count3、max&min4、collect5、查找与匹配 创建流 单例集合&#xff1a;集合对象.stream() List<Integer> list new ArrayList<>(); Stream<…

C语言:详解操作符(下)

上一篇链接&#xff1a;C语言&#xff1a;详解操作符&#xff08;上&#xff09;摘要&#xff1a; 在上篇文章中&#xff0c;我们已经讲过位操作符等涉及二进制的操作符&#xff0c;这些有助于帮助我们后期理解数据如何在计算机中运算并存储&#xff0c;接下来本篇将更多的讲述…

mac docker 宿主机和容器间网络打通

动因 是这样&#xff0c;笔者最近满怀欣喜入手Docker&#xff0c;看着各种文章命令都是不断点头称道&#xff1a;“嗯嗯&#xff0c;不错不错”,在接下来终于准备大干一场的时候碰壁了&#xff0c;主要情况是说在Mac中跑了第一把的时候发现碰到&#xff0c;虚拟机和宿主机居然…

CentOS7下如何安装Nginx

一、Ngxin是什么 Nginx是一个开源的 Web 服务器&#xff0c;具有反向代理、负载均衡、缓存等功能。它可以作为 HTTP 服务器&#xff0c;将服务器上的静态文件&#xff08;如 HTML、图片&#xff09;通过 HTTP 协议展现给客户端&#xff0c;也可以实现动静分离&#xff0c;把动态…

【后端高频面试题--Nginx篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 后端高频面试题--Nginx篇 什么是Nginx&#xff1f;为什么要用Nginx&#xff1f;为什么Nginx性能…

FAST角点检测算法

FAST&#xff08;Features from Accelerated Segment Test&#xff09;角点检测算法是一种快速且高效的角点检测方法。它通过检测每个像素周围的连续像素集合&#xff0c;确定是否为角点。以下是 FAST 角点检测算法的基本流程&#xff1a; FAST 角点检测算法的基本过程主要包括…

精读《Web Components 的困境》

本期精读的文章是&#xff1a;The broken promise of Web Components 以及对这篇文章的回应: Regarding the broken promise of Web Components 1 引言 我为什么要选这篇文章呢&#xff1f; 就在前几天的 Google I/O 2017 上, Polymer 正式发布了 Polymer 2.0 版本. 来看…

HTTP基本概念-HTTP 是什么?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 是什么? HTTP 是超文本传输协议&#xff0c;也就是HyperText Transfer Protocol。 能否详细解释「超文本传输协议」? HTTP 的名字「超文本协议传输」&#xff0c;它可以拆成三个部分: 超文本传输…

pycharm控制STM32F103ZET6拍照并上位机接收显示(OV7670、照相机、STM32、TFTLCD)

基于STM32的照相机 准备工作最终效果一、下位机1、主函数2、OV7670初始化 二、上位机1、控制拍照2、接收图片数据 三、资源获取 准备工作 一、硬件及片上资源: 1,串口1(波特率:921600,PA9/PA10通过usb转ttl连接电脑&#xff0c;或者其他方法)上传图片数据至上位机 2,串口2(波特…

Java语法学习反射

Java语法学习反射 大纲 基本介绍class的介绍 具体案例 1. 基本介绍 流程图&#xff08;程序在计算机的阶段&#xff09; 反射的主要的类 这个提高效率不大 2. class的介绍 对于第三点&#xff1a;首先类只会加载一次&#xff0c;得到的class的对象&#xff0c;也只有一…

Linux第52步_移植ST公司的linux内核第4步_关闭内核模块验证和log信息时间戳_编译_并通过tftp下载测试

1、采用程序配置关闭“内核模块验证” 默认配置文件“stm32mp1_atk_defconfig”路径为“arch/arm/configs”; 使用VSCode打开默认配置文件“stm32mp1_atk_defconfg”&#xff0c;然后将下面的4条语句屏蔽掉&#xff0c;如下&#xff1a; CONFIG_MODULE_SIGy CONFIG_MODULE_…