ES嵌套查询和普通查询的高亮显示区别
在 Elasticsearch 中,高亮显示是一种强大的搜索结果可视化工具,它可以帮助我们快速识别匹配的关键字或短语。在ES中,我们可以使用两种不同的查询方式来实现高亮显示:嵌套查询和普通查询。本文探讨这两种查询方式的高亮显示区别以及如何通过查询结果获得匹配的内部文档内容和高亮结果。
嵌套查询的高亮显示
嵌套查询是指在查询中包含另一个查询,用于在嵌套文档中进行匹配。这在处理父子关系或多值字段时非常有用,例如,一本书有多个作者。在嵌套查询中使用高亮显示时,高亮会应用在嵌套文档(子文档)的匹配上,而不是父文档。
示例:嵌套查询和 inner_hits 的高亮显示
GET /books/_search
{
“query”: {
“nested”: {
“path”: “authors”,
“query”: {
“match”: {
“authors.name”: “Author Name”
}
},
“inner_hits”: {
“highlight”: {
“fields”: {
“authors.name”: {}
}
}
}
}
}
}
在上述例子中,我们在 nested 查询中使用了 inner_hits,并在其中指定了要高亮显示的字段。当执行查询后,Elasticsearch 将返回匹配的父文档,并在 inner_hits 中包含了匹配的内部(作者)文档的部分内容和高亮结果。
普通查询的高亮显示
普通查询是指在文档的顶层执行查询,而不考虑文档内部的嵌套结构。这是最常见的查询方式,适用于大多数场景。在普通查询中使用高亮显示时,高亮仅应用在匹配的顶层文档上。
示例:普通查询的高亮显示
GET /articles/_search
{
“query”: {
“match”: {
“content”: “Search Keyword”
}
},
“highlight”: {
“fields”: {
“content”: {}
}
}
}
在上述例子中,我们使用 match 查询来搜索包含 “Search Keyword” 的文章,并在内容中使用高亮显示。当执行查询后,Elasticsearch 将返回匹配的文章,并在 highlight 中包含了匹配的内容字段的高亮结果。
区别和选择
使用嵌套查询和普通查询的高亮显示时需要注意一些区别:
- 嵌套查询适用于文档内部嵌套结构的情况,例如父子关系或多值字段。普通查询则适用于文档顶层的情况。
- 嵌套查询的高亮显示仅在嵌套文档(子文档)中应用,而普通查询的高亮显示则在顶层文档中应用。
- inner_hits 是在父文档中返回匹配的内部文档的部分内容和高亮结果,而普通查询只在顶层文档中返回高亮结果。
在选择查询类型和高亮显示方式时,请根据您的数据结构和查询需求进行判断。如果需要在嵌套文档中进行高亮显示并返回匹配的部分内容,那么嵌套查询和 inner_hits 是一个非常有用的选择。
总结
本文介绍了 Elasticsearch 中嵌套查询和普通查询的高亮显示区别,并详细介绍了如何通过查询结果获得匹配的内部文档内容和高亮结果。嵌套查询适用于处理文档内部的嵌套结构,而普通查询适用于大多数搜索场景。使用 inner_hits 的嵌套查询可以在父文档中返回匹配的内部文档的部分内容和高亮结果。根据实际需求和数据结构,选择合适的查询类型和高亮显示方式,将有助于优化搜索结果的展示和用户体验。
相关文章:
ES嵌套查询和普通查询的高亮显示区别
在 Elasticsearch 中,高亮显示是一种强大的搜索结果可视化工具,它可以帮助我们快速识别匹配的关键字或短语。在ES中,我们可以使用两种不同的查询方式来实现高亮显示:嵌套查询和普通查询。本文探讨这两种查询方式的高亮显示区别以及…...
Greenplum集群部署
一,安装说明 1.1环境说明 *名称**版本*操作系统CentOS 7.6 64bitgreenplumgreenplum-db-6.10.1-rhel7-x86_64.rpm1.2集群介绍 IPhostname集群节点10.240.3.244gpmastermaster10.240.3.245gpsegment1segment10.240.3.246gpsegment2segment二,安装环境准备 2.1 修改各节点名称…...
电教智能云数据可视化平台开发电能优化日志实录
电教智能云数据可视化平台开发电脑优化日志实录 一、2K和4K弹窗判断二、电能API对接1.电脑爬虫2.电能分组过滤3.数据可视化渲染4.弹窗 三.数组按顺序输出 一、2K和4K弹窗判断 {* 判断2k和4k弹窗 *}{if $dataScene[scene_standard] eq 0}<a class"menuBtn subMenu"…...
JSX语法基础总结
题记:首先我们要了解一下jsx是什么,跟js有什么区别,其实就是js的语法糖,加上了xml的语法,使得产生虚拟dom更加的方便,简单说一下,xml就是存储数据的格式,想了解xml的话,可…...
socker套接字
1.打印错误信息 2.socketaddr_in结构体 结构体: (部分库代码) (宏中的##) 3.manual TCP: SOCK_STREAM : 提供有序地,可靠的,全双工的,基于连接的流式服务 UDP: 面向数据报...
No111.精选前端面试题,享受每天的挑战和学习
文章目录 map和foreach的区别在组件中如何获取vuex的action对象中的属性怎么去获取封装在vuex的某个接口数据有没有抓包过?你如何跟踪某一个特定的请求?比如一个特定的URL,你如何把有关这部分的url数据提取出来?1. 使用网络抓包工…...
【Apollo学习笔记】—— 相机仿真
文章目录 前言相关代码整理 测试实践文件目录包管理BUILD文件以及cyberfile.xml文件源程序BUILD运行结果其他参考CameraOutput channels启动camera驱动启动camera video compression驱动 前言 本文是对Cyber RT的学习记录,文章可能存在不严谨、不完善、有缺漏的部分࿰…...
【数据结构】——线性表的相关习题
目录 题型一(线性表的存储结构)题型二(链表的判空)题型三(单链表的建立)题型四(顺序表、单链表的插入删除操作)题型五(双链表的插入删除操作)题型六ÿ…...
SpringBoot集成Elasticsearch8.x(8)|(新版本Java API Client的Painless语言脚本script使用)
SpringBoot集成Elasticsearch8.x(8)|(新版本Java API Client的Painless语言脚本script使用) 文章目录 SpringBoot集成Elasticsearch8.x(8)|(新版本Java API Client的Painless语言脚本script使用…...
SpringBoot复习:(19)Condition接口和@Conditional注解
Condition接口代码如下: public interface Condition {boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata);}它是一个函数式接口,只有一个方法matches用来表示条件是否满足。matches方法中的ConditionContext类对象context可以…...
K8s中的Controller
Controller的作用 (1)确保预期的pod副本数量 (2)无状态应用部署 (3)有状态应用部署 (4)确保所有的node运行同一个pod,一次性任务和定时任务 1.无状态和有状态 无状态&…...
【MFC】03.常用复杂控件的使用-笔记
热键: 对话框-类向导:初始化函数中,热键需要在最开始的时候就注册进去: 注册热键: 在这之前,先去定义一个宏,代表你这个快捷键。 参数:窗口句柄,热键编号(热…...
Autosar诊断实战系列14-NRC优先级解析
本文框架 前言1. NRC分类2. NRC优先级判断2.1. NRC优先级判断逻辑介绍2.2 NRC测试注意事项前言 在本系列笔者将结合工作中对诊断实战部分的应用经验进一步介绍常用UDS服务的进一步探讨及开发中注意事项, Dem/Dcm/CanTp/Fim模块配置开发及注意事项,诊断与BswM/NvM关联模块的应…...
《向量数据库指南》——腾讯云向量数据库Tencent Cloud VectorDB产品特性,架构和应用场景
腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持 10 亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提…...
xcode 的app工程与ffmpeg 4.4版本的静态库联调,ffmpeg内下的断点无法暂停。
先阐述一下我的业务场景,我有一个iOS的app sdk项目,下面简称 A ,以及运行 A 的 app 项目,简称 A demo 。 引用关系为 A demo 引用了 A ,而 A 引用了 ffmpeg 的静态库(.a文件)。此时业务出现了 b…...
机器学习06 数据准备-(利用 scikit-learn基于Pima Indian数据集作 数据特征选定)
什么是数据特征选定? 数据特征选定(Feature Selection)是指从原始数据中选择最相关、最有用的特征,用于构建机器学习模型。特征选定是机器学习流程中非常重要的一步,它直接影响模型的性能和泛化能力。通过选择最重要的特征&#…...
机器学习-特征选择:如何使用Lassco回归精确选择最佳特征?
一、引言 特征选择在机器学习领域中扮演着至关重要的角色,它能够从原始数据中选择最具信息量的特征,提高模型性能、减少过拟合,并加快模型训练和预测的速度。在大规模数据集和高维数据中,特征选择尤为重要,因为不必要的…...
SpringBoot之Actuator基本使用
SpringBoot之Actuator基本使用 引入分类常用接口含义healthbeansconditionsheapdumpmappingsthreaddumploggersmetrics 引入 <!-- actuator start--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…...
排序算法(一)
1.冒泡排序-Bubble Sort 1.算法原理 依次比较相邻的两个元素,若按照从小到大的顺序,则将相邻元素中较大的一个放在后面;然后对每一对相邻元素都做这种比较,序列的最后一个元素就是最大的数; 2.算法复杂度 时间复杂度…...
Centos虚拟机忘记密码-修改密码
1.重启系统 2.在这个选择界面,按e建 3.找到如下位置,插入init/bin/sh 4.填写完成后按Ctrlx引导启动 5.输入mount -o remount, rw / (注意空格) 6.重置密码 出现以下为重置成功 7.执行touch /.autorelabel 8.退出exec /sbin/init 9.输入你的新密…...
Oracle EBS 资产类别是 真正的树形层级结构(通过弹性域实现父子关系),而 SAP 资产类别(Asset Class)是 扁平结构(无系统内置层级)
Oracle EBS 资产类别是 真正的树形层级结构(通过弹性域实现父子关系),而 SAP 资产类别(Asset Class)是 扁平结构(无系统内置层级)。下面通过详细原理、实例、配置、报表四个维度彻底对比分析。一…...
Keil5环境下STM32F103ZET6工程创建与软件仿真全攻略
1. Keil5开发环境与STM32F103ZET6简介 STM32F103ZET6是STMicroelectronics推出的一款基于ARM Cortex-M3内核的微控制器,具有72MHz主频、512KB Flash和64KB SRAM,广泛应用于工业控制、消费电子等领域。Keil MDK(Microcontroller Development K…...
intv_ai_mk11效果惊艳:技术概念解释附带类比(如‘注意力机制像老师点名’)提升理解
intv_ai_mk11效果惊艳:技术概念解释附带类比提升理解 1. 什么是intv_ai_mk11 intv_ai_mk11是一款基于Llama架构的AI对话助手,拥有7B参数规模,运行在GPU服务器上。它就像一位24小时在线的智能助手,能够理解并回答各种问题&#x…...
深入理解SMU Debug Tool:解锁AMD Ryzen处理器的底层性能调控能力
深入理解SMU Debug Tool:解锁AMD Ryzen处理器的底层性能调控能力 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: …...
3秒获取百度网盘提取码:开源智能工具的终极解决方案
3秒获取百度网盘提取码:开源智能工具的终极解决方案 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘资源下载被提取码卡住而烦恼吗?baidupankey作为一款开源的百度网盘提取码智能获取工具…...
文献自由:ScienceDecrypting破解加密PDF的技术突破与价值重构
文献自由:ScienceDecrypting破解加密PDF的技术突破与价值重构 【免费下载链接】ScienceDecrypting 破解CAJViewer带有效期的文档,支持破解科学文库、标准全文数据库下载的文档。无损破解,保留文字和目录,解除有效期限制。 项目地…...
Zenith.NET v0.0.7:Metal 后端落地,.NET GPU 抽象的跨平台旅程
为什么要做 Zenith.NET?.NET 生态有不少图形相关的库——绑定层如 Silk.NET、Vortice,抽象层如 Veldrid、Evergine。但现有的抽象层要么停留在较旧的 API 版本(如 DX11/OpenGL),要么是商业引擎的一部分,难以…...
AdGuard浏览器扩展全方位部署与优化指南:打造无广告浏览环境
AdGuard浏览器扩展全方位部署与优化指南:打造无广告浏览环境 【免费下载链接】AdguardBrowserExtension AdGuard browser extension 项目地址: https://gitcode.com/gh_mirrors/ad/AdguardBrowserExtension 广告拦截与隐私保护的终极解决方案 网络浏览时不断…...
XP.css终极指南:如何用CSS完美复刻Windows经典界面
XP.css终极指南:如何用CSS完美复刻Windows经典界面 【免费下载链接】XP.css A CSS framework for building faithful recreations of operating system GUIs. 项目地址: https://gitcode.com/gh_mirrors/xp/XP.css 你是否怀念Windows XP和Windows 98那经典的…...
k6:现代性能测试工具的新标杆
本人已经有几年不接触性能测试了,近些年一直是在从事功能和操作系统的自动化测试工作,现在回头看以前所专注的性能测试工具,感觉是有点跟不上时代了,在网上无意中发现一款比较火的工具k6,我也不知道这工具是哪年冒出来…...
