Elasticsearch(12) match_bool_prefix的使用

elasticsearch version: 7.10.1

match_bool_prefix 是 Elasticsearch 中用于执行布尔前缀查询的一种查询类型。这种查询类型特别适用于当你想要匹配一个字段的前缀,并且希望这个字段中的词语是按照一定顺序出现的场景。

match_bool_prefix 语法

{  "query": {  "match_bool_prefix": {  "field_name": {  "query": "your_query_string",  "max_expansions": <number_of_expansions>,  "lenient": <true_or_false>  }  }  }  
}
  • field_name 是你想要执行查询的字段名。
  • query 是你想要匹配的前缀字符串。
  • max_expansions 是一个可选参数,用于限制查询可以扩展到的最大术语数。这有助于控制查询的复杂性和性能。如果不指定,则默认为 50。
  • lenient 是一个可选参数,如果设置为 true,则格式错误的字段将被忽略。默认为 false。

match_bool_prefix例题

场景1

假设我们有一个电商应用,用户需要搜索产品名称,我们希望支持前缀查询并控制最大扩展数量

索引创建

PUT /products
{"mappings": {"properties": {"product_name": {"type": "text","analyzer": "standard"}}}
}

文档插入

POST /products/_doc
{"product_name": "Apple iPhone 12 Pro Max"
}POST /products/_doc
{"product_name": "Samsung Galaxy S21 Ultra"
}POST /products/_doc
{"product_name": "Google Pixel 5"
}POST /products/_doc
{"product_name": "OnePlus 9 Pro"
}

查询语句

GET /products/_search
{"query": {"match_bool_prefix": {"product_name": {"query": "iPhone","max_expansions": 3}}}
}

场景2(max_expansions 使用)

max_expansions 参数在Elasticsearch的模糊匹配查询中,如 match_phrase_prefix 或 match_bool_prefix 等查询类型中使用,用于限制前缀查询时生成的可能候选项的数量。下面是一个具体的示例
假设我们有一个索引 library_books,其中包含书籍标题字段 title,并且用户想要搜索所有以 “机器学习” 开头的书籍,但您希望限制可能的结果数量以避免过多的资源消耗。

索引创建

PUT /library_books
{"mappings": {"properties": {"title": {"type": "text","analyzer": "standard"}}}
}

文档插入

POST /library_books/_doc/
{"title": "机器学习实战"
}POST /library_books/_doc/
{"title": "机器学习原理与应用"
}POST /library_books/_doc/
{"title": "深度学习与机器学习"
}POST /library_books/_doc/
{"title": "Python机器学习指南"
}POST /library_books/_doc/
{"title": "机器智能"
}

查询语句

GET /library_books/_search
{"query": {"match_phrase_prefix": {"title": {"query": "机器学习","max_expansions": 2}}}
}

在这个例子中,尽管实际文档中有多本标题包含“机器学习”或以此为前缀的书籍,但由于设置了 max_expansions 为2,Elasticsearch只会查找最多包含两个额外词项的匹配项(例如:“机器学习实战” 和 “机器学习原理与应用”)。如果实际的文档库中有更多以 “机器学习” 前缀开始的不同书名,max_expansions 将会限制返回结果的数量至设定的最大扩展数以内

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

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

相关文章

设计模式 — — 单例模式

一、是什么 单例模式只会在全局作用域下创建一次实例对象&#xff0c;让所有需要调用的地方都共享这一单例对象 二、实现 // 单例构造函数 function CreateSingleton (name) {this.name name;this.getName(); };// 获取实例的名字 CreateSingleton.prototype.getName func…

✅技术社区—跨域问题及解决方案

一、什么是跨域、为什么会跨域&#xff1f; 我们把问题分解 谁出现的跨域&#xff1f; 》 浏览器&#xff01; 为何出现&#xff1f; 》 同源策略 什么是同源策略&#xff1f; 根据百度百科 同源策略/SOP&#xff08;Same origin policy&#xff09;是一种约定&#xff0…

Linux 时间系统调用

UNIX及LinuxQ的时间系统是由「新纪元时间」Epoch开始计算起。Epoch是指定为1970年1月1日凌晨零点零分零秒&#xff0c;格林威治时间。目前大部份的UNX系统都是用32位来记录时间&#xff0c;正值表示为1970以后&#xff0c;负值则表示1970年以前。 对于当前时间到Epoch 我们用两…

代码算法训练营day10 | 232.用栈实现队列、225. 用队列实现栈

day10: 232.用栈实现队列225. 用队列实现栈 232.用栈实现队列 题目链接 状态&#xff1a; 文档&#xff1a;programmercarl.com 思路&#xff1a; 用栈实现队列。要先明白两者的区别。 栈&#xff1a;单开门&#xff0c;先进后出&#xff0c;只有一端能进出。 队列&#xff1a;…

继承 ResponseEntityExceptionHandler

目录 作用概述 示例-HttpRequestMethodNotSupportedException 示例-自定义异常处理 总示例 使用了ResponseEntityExceptionHandler后&#xff0c;为什么发生了异常后返回体为空 方法执行顺序 作用概述 这是一个方便的基类&#xff0c;用于希望通过 ExceptionHandler 方法…

Vue项目的搭建

Node.js 下载 Node.js — Download (nodejs.org)https://nodejs.org/en/download/ 安装 测试 winR->cmd执行 node -v配置 在安装目录下创建两个子文件夹node_cache和node_global,我的就是 D:\nodejs\node_cache D:\nodejs\node_global 在node_global文件下再创建一个…

并查集(详解+例题)

1、作用 将两个集合合并 询问两个元素是否在一个集合中 2、基本原理 每个集合用一颗树表示。树根的编号就是整个集合的编号。每个节点存储它的父节点&#xff0c;p[x]表示x的父节点。 3、实现 问题1&#xff1a;如何判断树根&#xff1a;if(p[x]x); 问题2&#xff1a;如何求…

C++ 特殊类及单例模式

文章目录 1. 前言2. 不能被拷贝的类3. 不能被继承的类4. 只能在堆上创建对象的类5. 只能在栈上创建对象的类6. 只能创建一个对象的类&#xff08;单例模式&#xff09; 1. 前言 在实际场景中&#xff0c;我们在编写类的过程中总会遇到一些特殊情况&#xff0c;比如设计一个类不…

深入解析红黑树(RB-Tree):原理、操作及应用

文章目录 一、红黑树的特点与性质二、红黑树的实现1、实现红黑树的插入操作2、红黑树的验证方法a. Check 函数b. IsBalance 函数 红黑树作为一种自平衡的二叉搜索树&#xff0c;在计算机科学领域中占据着重要的地位。它的设计旨在在维持树的平衡性的同时&#xff0c;保证各种操…

红队攻防之exe文件签名免杀

达则兼善天下&#xff0c;穷则独善其身 1、生成 cobaltstrike bin文件&#xff0c;选择raw选项。 2、使用 cobaltstrike分离免杀工具生成loader.exe文件。 3、使用UPX对生成的exe文件进行加壳&#xff0c;加壳前后对比文件的大小。 4、对loader.exe进行制作并签发证书-数字签名…

数通-OSPF基础-01

动态路由&#xff1b;两端设备必须使用相同的动态路由协议&#xff08;形成路由域&#xff09; 设备1运行RIP——设备2运行RIP、OSPF——设备3运行OSPF&#xff0c;两个协议之间进行路由学习&#xff08;路由引入技术&#xff09; 动态路由更新方式&#xff1a;1.周期更新——…

国家推荐标准 20986 2023 信息安全技术 网络安全事件分类分级指南 学习记录

网络安全事件分类分级指南是指在网络安全领域对不同类型的安全事件进行分类和分级的指南和标准。这样的分类分级指南有助于标准化对安全事件的处理和应对措施&#xff0c;并能够帮助组织更好地应对和管理安全事件。 一般来说&#xff0c;网络安全事件可以根据其严重性、影响程…

UDF提权

目录 一、UDF概述 二、提权条件 三、漏洞复现 (一) 信息收集 1. Nmap信息收集 1.1、查看当前IP地址 1.2、扫描当前网段&#xff0c;找出目标机器 1.3、快速扫描目标机全端口 2. dirb目录扫描 3. 第一个flag 3.1、目录遍历漏洞 3.2、flag 4. 敏感信息利用 (二) 漏…

ElasticSearch常见用法,看这一篇就够了(文末送书)

2024送书福利正式起航 关注「哪吒编程」&#xff0c;提升Java技能 文末送3本《一本书讲透Elasticsearch&#xff1a;原理、进阶与工程实践》 大家好&#xff0c;我是哪吒。 ElasticSearch是一款由Java开发的开源搜索引擎&#xff0c;它以其出色的实时搜索、稳定可靠、快速安…

UE4 虚幻4快捷键教程

一、编辑器Viewports常用快捷键 1.文本类 新建文件 【Ctrl】【N】 打开文件 【Ctrl】【O】 储存文件 【Ctrl】【S】 2.选择操作类相关快捷键(可通过键盘操作实现) 全部选择 【Ctrl】【A】 复制 【Ctrl】【C】 粘贴 【Ctrl】【V】 剪切 【Ctrl】【X】 查找 【Ctrl】【…

土壤水分实测数据网站资源

农田土壤水分数据 貌似是站点数据&#xff0c;但是年份太老&#xff0c;而且也没找着下载的地方 2012年黄土高原土壤水分及相关土壤物理参数数据集 2007-2009年中国农业大学石羊河实验站玉米通量与生长观测数据集 2005&#xff5e;2014年CERN野外台站气象观测场土壤含水量数据…

一维差分(模板)

差分是前缀和的逆运算&#xff0c;对于一个数组a&#xff0c;其差分数组b的每一项都是a [ i ]和前一项a [ i − 1 ]的差。 注意&#xff1a;差分数组和原数组必须分开存放&#xff01;&#xff01;&#xff01;&#xff01; #include <iostream> using namespace std;t…

CF edu round163 C

Problem - C - Codeforces 昨晚看到这题是想着要用DP或者BFS的&#xff0c;但是又看了会题又感觉似乎不需要也可以写。然后就一直WA&#xff0c;不过无所谓&#xff0c;就算写DP和BFS估计我也不一定写得出来。 今天再又看了下&#xff0c;至少昨晚题没有读错&#xff0c;但是…

【回归预测】基于SSA-BP(麻雀搜索算法优化BP神经网络)的回归预测 多输入单输出【Matlab代码#69】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】1. BP神经网络2. 麻雀搜索算法3. SSA-BP神经网络模型的构建4. 部分代码展示5. 仿真结果展示 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】 1. BP神经网络 BP&…

算法:一些DFS的经验

DFS:可以看作是向下遍历树的模拟 剪枝&#xff1a;减少时间复杂度 一个dfs所需要具备的元素&#xff1a; 一&#xff0c;出口 1.出口&#xff1a;每一个进入的dfs的出口&#xff0c;可以是枚举全部元素后退出该dfs,也可以是大于层数或剪枝条件........ 二&#xff0c;向下搜…