【ElasticSearch】实现模糊查询

Elasticsearch 提供了多种模糊查询方式,适用于不同场景的需求。以下是主要实现方式及其核心特点:

查询类型 适用场景 核心特点 性能影响
Wildcard 通配符匹配(*? 类似 SQL 的 LIKE,支持任意位置的通配符,但以*开头时性能较差。适用于非分词的 keyword 类型字段。 高(尤其模式以通配符开头时)
Match_Phrase 短语顺序匹配 要求分词后的词项顺序完全一致,支持 slop 参数允许少量间隔。适用于需要保持语序的文本搜索。 中(依赖分词质量)
Fuzzy 拼写纠错或容错匹配 基于编辑距离(Levenshtein 算法),允许一定字符差异(如 surprize 匹配 surprise)。 中(受 fuzziness 参数影响)
Regexp 复杂正则表达式匹配 支持正则语法(如 elast.* 匹配 elastic),灵活性高但性能最差。 极高(需遍历所有文档)
Prefix 前缀匹配 仅支持前缀匹配(如 hel* 匹配 hello),性能优于 Wildcard。 低(优化后)

Match_Phrase 与 Wildcard 的深度对比

1. 核心机制与使用场景

特性 Match_Phrase Wildcard
匹配逻辑 分词后的词项顺序必须完全一致(可通过 slop 放宽间隔)。 基于通配符(*?)直接匹配原始文本,不依赖分词。
字段类型支持 适用于 text 类型(分词)和 keyword 类型(精确值)。 主要针对 keyword 类型(未分词的原始值),若用于 text 类型需指定 .keyword 子字段。
典型用例 搜索完整短语(如 "quick brown fox")。 部分匹配(如 *brown* 匹配 the_brown_fox)。

2. 优缺点分析

查询类型 优点 缺点
Match_Phrase - 保持词序,适合自然语言查询。
- 结合 slop 可容忍少量间隔(如 quick fox 匹配 quick brown fox)。
- 严格依赖分词质量,若分词错误可能导致漏检。
- 无法匹配子字符串(如 brow 无法匹配 brown)。
Wildcard - 支持任意位置的模糊匹配(如 *brown*)。
- 不依赖分词,直接操作原始文本。
- 性能差,尤其是模式以通配符开头时(如 *brown)。
- 对大小写敏感(需预处理数据或使用标准化)。

3. 性能优化建议

  • Match_Phrase
    • 对高频短语使用 index_phrases 参数预生成短语索引
    • 结合 slop 参数平衡准确性与灵活性(如 slop:2 允许两个词间隔)。
  • Wildcard
    • 优先使用 prefix 替代前缀匹配(如 brow* 优于 *brow*
    • 在 ES 7.9+ 中使用 wildcard 字段类型,通过预存 n-gram 提升性能

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

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

相关文章

智能化食品安全管理:AI视频监控在大型商场的技术方案介绍(part2)

前言 在卖场中,尤其是熟食区,AI视频监控的应用对于食品安全至关重要。通过AI视频监控系统,卖场可以实时监测食品处理环节中的每一个细节,从员工的个人防护到清洁操作,再到区域管理,全面提升食品安全管理的精度和效率。这不仅有助于确保食品处理的卫生合规,还能够减少人为…

《计算机网络》笔记——第七章 网络安全

计算机网络(第7版)谢希仁目录第七章 网络安全两类密码体制对称密钥密码体制公钥密码体制数字签名鉴别报文鉴别实体鉴别密钥分配对称密钥分配公钥的分配互联网使用的安全协议防火墙与入侵检测 第七章 网络安全 两类密码体制 对称密钥密码体制 加密密钥和解密密钥是使用相同的密…

一个月狂赚百万?DeepSeek爆火背后的卖铲人狂欢

大家好,我是郭顺发,一个白天敲代码晚上写博客的独立开发者。最近有个叫DeepSeek R1的AI模型火得离谱——不是因为它技术多逆天,而是因为**一堆人靠它一个月赚了几百万**,而他们卖的东西...你绝对想不到。大家好,我是郭顺发,一个白天敲代码晚上写博客的独立开发者。最近有…

前端开发的未来:可视化编程时代来临

在数字化转型的浪潮中,前端开发领域正在经历一场深刻的变革。可视化编程这一曾经被视为"玩具"的开发方式,正以惊人的速度崛起,成为前端开发的主流趋势。在这场变革中,Joker可视化编程平台凭借其创新的设计理念和强大的技术实力,正引领着这场前端开发的革命。 J…

【deepseek】完全离线部署deepseek并建立本地知识库应用电子数据取证领域

之前小谢推出一篇部署本地大模型教程,但需要网络环境 AI机器人本地免费部署(部署Llama 3.1详细教程) 还是比较受到读者的欢迎,但应读者要求:需要这个模型能够训练,能够结合电子数据取证方向且行业内有些数据是不对外公开的,又因为有些机子是没办法连接外网的。 所以完全…

[知识管理/技术调研] 开源的Markdown笔记APP

开源Markdown笔记APP 以下是一些开源的Markdown笔记应用,适合不同平台和需求:Joplin / Obsidian / Standard Notes / Mark Text / Zettlr / Notable / Boostnote / Logseq / Typora / VNote1. Joplin平台: Windows, macOS, Linux, iOS, Android 特点:支持端到端加密 可同步到…

使用 clang-format 为 Keil 配置格式化代码功能

安装 clang-format clang-format 是 LLVM 项目的一部分,因此首先需要安装 LLVM。官网下载速度较慢,可以去清华源下载: 最新版下载链接:LLVM-binary 根据操作系统下载对应的版本,如果是 Windows 点击 LLVM-xxxx-win64.exe 即可下载,其中 xxxx 是版本号,此链接保证为最新版…

P10507 Georgia and Bob 题解

P10507 Georgia and Bob 题解 题目链接 题目大意 一个一行的棋盘,棋盘上有 \(n\) 个棋子,两人轮流选择一枚棋子向左移动若干格(会被其他棋子阻拦),询问谁必赢。 解题思路 显然为博弈论。注意到对于两个相邻(指棋子,不是位置)的棋子,若先手移动了左边的棋子若干格,后手…

货梯人形识别摄像机

货梯人形识别摄像机广泛应用于各类商业建筑、物流中心、大型工厂及购物中心等场所。用于实时监测货梯,提高作业效率和安全性。此外,在大型活动现场,如展览会或会议中心,该技术也可用于控制客流量,保障活动顺利进行。随着科技的发展,未来的货梯人形识别摄像机将越来越智能…

CTFShow-Web164-165:图片二次渲染绕过

CTFShow-Web164-165:图片二次渲染绕过 这两题都是图片二次渲染绕过类型,Web164是png,Web165是jpg 常见的二次渲染绕过可以参考:https://j7ur8.github.io/WebBook/PHP/二次渲染绕过.html 🛠️ Web164 WriteUp运行脚本覆盖掉原来图片的内容,制作图片码 from PIL import Im…

Volcano v1.11发布,显著提升AI训练与推理任务的性能

本次更新聚焦AI与大数据的核心需求,推出网络拓扑感知调度、多集群AI作业调度等重磅特性,显著提升AI训练与推理任务的性能。摘要:本次更新聚焦AI与大数据的核心需求,推出网络拓扑感知调度、多集群AI作业调度等重磅特性,显著提升AI训练与推理任务的性能。本文分享自华为云社…

FreeBSD安装FAMP环境

相比于Linux,FreeBSD少了很多面板和一键脚本,自己折腾了一下,记录一下。 配置:VPS一台系统:FreeBSD 14.1SSH工具:MobaXterm 1.更新系统pkg update && pkg upgrade -y 2.安装Apache搜索最新版Apachepkg search apache安装最新版Apachepkg install -y apache24设置…