ES dsl查询filter(或must)和should并用时should子句不生效

记录下今天编码时遇到的问题,在filter和should同级并用的查询下,should子句并没有生效,只有filter子句生效。

例如以下dsl

{"query": {"bool": {"filter": [{"term": {"status": 3}}],"should": [{"bool": {"filter": [{"bool": {"must_not": {"exists": {"field": "last_recheck_time"}}}},{"range": {"qc_end_time": {"lte": 1713769642}}}]}},{"range": {"last_recheck_time": {"lte": 1713769642}}}]}}
}

这是因为在filter/must和should并列使用时,当filter/must满足时,should子句默认会被忽略,如果需要filter/must满足的同时,should中的条件也要满足,有两种方法可以修改我们原本的查询。

方法1 使用minimum_should_match

在should同级增加参数minimum_should_match,修改后的dsl如下

{"query": {"bool": {"filter": [{"term": {"status": 3}}],"minimum_should_match":1,"should": [{"bool": {"filter": [{"bool": {"must_not": {"exists": {"field": "last_recheck_time"}}}},{"range": {"qc_end_time": {"lte": 1713769642}}}]}},{"range": {"last_recheck_time": {"lte": 1713769642}}}]}}
}

方法2 合并filter和should子句

可将should子句和filter子句合并,将should子句作为filter子句内的一部分,达到想要的查询效果

{"query": {"bool": {"filter": [{"term": {"status": 0}},{"bool": {"should": [{"bool": {"filter": [{"bool": {"must_not": {"exists": {"field": "last_recheck_time"}}}},{"range": {"qc_end_time": {"lte": 0}}}]}},{"range": {"last_recheck_time": {"lte": 0}}}]}}]}}
}

参考:

Bool Query | Elasticsearch Guide [5.0] | Elastic

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

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

相关文章

IBM MQ监控:保障消息传递系统稳定运行的关键实践

IBM MQ监控是指对IBM MQ(IBM Message Queue)系统的性能和状态进行实时监测和管理的过程。IBM MQ是一款商业消息中间件产品,它允许在分布式计算环境或异构系统之间进行可靠的消息传递。通过监控IBM MQ,可以确保消息传递的顺畅、高效…

CMakeLists.txt语法规则:数学运算 math

一. 简介 前面几篇文章学习了 CMakeLists.txt语法中的一些常用变量,常用命令,双引号的作用。条件判断语句,循环语句等等。 本文简单学习一下 CMakeLists.txt语法中数学运算 match。 二. CMakeLists.txt语法规则:数学运算 math 在…

MySQL数据库实验三

本文承接前面的俩次实验基础上完成,不过实现的都是基础操作的练习 目录 目录 前言 实验目的 实验要求 实验内容及步骤 updata操作 delete操作 alter操作 添加列 删除列 修改列的数据类型 要求实现 实验结果 代码结果 注意事项 思考题 总结 前言 本文是MySQL数据库…

身份证OCR识别接口如何对接

身份证OCR识别接口又叫身份证识别API接口、身份证正反面文字识别接口,指的是传入身份证照片,精准识别静态身份证图像上的文字信息,如果传的是正面照片只返回正面信息,如果传的是反面只返回反面信息。那么身份证OCR识别接口如何对接…

2.用python爬取的保存在text文件中的格式为MP4的视频url

文章目录 一、url的保存格式二、MP4视频获取 一、url的保存格式 爬取的视频名字和url保存在text文件中,每一个视频都是一个单独的text,其中text的文件名就是视频的名字,text内容是视频的下载url,并且所有的text都保存在同一个文件…

软件接口测试规范流程

1、需求分析 1.1 确认测试目的和测试对象: 了解需求并明确测试目的,如测试一个本地 API 还是跨网站的远程 API。 1.2 确认测试的基本条件: 确定测试所需的测试数据,测试环境以及测试团队中的角色和职责。 1.3. 对接口文档进行验证&#xf…

Windows系统使用powershell批量移动特定起始位置的“快捷方式”

移动特定起始位置的“快捷方式” 快捷方式都对应一个的目标和“起始位置”,现在想要把特定起始位置的快捷方式移动到一个文件夹中。 新建文本文档,输入如下内容: # 设置变量 $oldPath "D:\111\111_1" $newPath "D:\111\1…

AI-数学-高中55-随机变量正态分布

原作者视频:【随机变量】【一数辞典】6正态分布_哔哩哔哩_bilibili 整个概率面积 S 1。 示例: 对称轴平均分μ90分,西格玛(确定最高点的值,值越大越缓,越小分布曲线峰值越瘦高)σ20分。

【前端热门框架【vue框架】】——事件处理与表单输入绑定以及学习技巧,让学习如此简单

👨‍💻个人主页:程序员-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

<网络安全>《81 微课堂<安全产品微简介(1)>》

1 简单的了解复杂的安全产品 产品简要防火墙网络区域边界上部署,主要作用是隔离阻断。安全审计一般包括网络日志的分析、网络流量的监控和用户行为的跟踪等。发现网络中的潜在问题和漏洞。入侵检测IDS实时监控和检测网络中的异常活动和入侵行为。入侵防御IPS防病毒…

游戏专用设备指纹方案解析

如同人类拥有独一无二的指纹,设备也有设备的指纹,我们可以把设备指纹理解为设备的唯一识别码。 构建设备指纹需要采集设备硬件信息、软件信息、环境信息、网络信息等维度信息,进行加密/压缩,再通过算法处理,赋予设备唯…

音转文工具,9.8k star! 【送源码】

我们经常会遇到将音频转为文字的情况,比如在开会时录音的会议纪要、上课时录下的老师讲课内容。虽然网上也有一些在线的工具可以将音频转为文字,但是考虑到数据安全和费用问题,使用起来也不是很方便。 今天了不起给大家介绍一款开源工具——…

短信清空了!华为手机短信删除了怎么恢复?

“有没有人知道这是怎么回事呀,原先有一千多条未读一直放着没管,昨天根本没打开短信这个软件,今晚突然发现只剩一条了,是华为手机自动清理了吗!到底该怎么恢复呀?我真崩溃!” 在日常生活中&…

设计模式之服务定位器模式

想象一下,你的Java应用是一座庞大的迷宫,里面藏着无数宝贵的服务宝藏,而你正需要一张精确的藏宝图来指引方向,迅速找到并利用这些宝藏。服务定位器模式,正是这样一张神奇的地图,它帮你动态定位并获取应用中…

振动分析的一些概念

一.时域分析 振动测试领域中,通常使用标准是ISO 10816系列标准,其要去使用有效值(RMS)来表示震动信号的能量大小,并提供一组限制值,以帮助用户评估机器的振动水平是否正常。 1.位移: 峰峰&…

【C++】C/C++中新const用法:const成员

欢迎来到CILMY23的博客 本篇主题为: C/C中新const用法:const成员 个人主页:CILMY23-CSDN博客 系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux 感谢观看,支持的可以给个一键三连,点赞…

PostgreSQL函数和运算符

PostgreSQL为内置的数据类型提供了大量的函数和运算符,用户也可以定义自己的函数和运算符,使用psql命令\df和\do可以列出所有可用的函数和运算符 1. 逻辑运算符 常用的逻辑运算符有AND、OR、NOT,逻辑系统有三个值true、fase和null&#xff…

8、基本数据类型转换(自动转换和强制转换)

基本类型转换 1、自动类型转换2、强制类型转换 1、自动类型转换 定义:当Java程序在进行赋值或者运算时,精度小的类型会自动转换成精度大的数据类型,这个就是自动类型转换。(自动小转大) 背多芬: 这里要明…

【二维数组】

目录 作业 对比&#xff1a; 结果&#xff1a; 二维数组 二维数组的初始化 作业 作业 #define max(a,b)(a>b)?a:b #include<stdio.h> int main() {int x, y,c;scanf("%d %d", &x,&y);cmax(x, y);printf("%d", c);return 0; } 对比…

深入理解Django:中间件与信号处理的艺术

title: 深入理解Django&#xff1a;中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories: 后端开发 tags: Django中间件信号异步性能缓存多语言 引言 在当今的Web开发领域&#xff0c;Django以其强大的功能、简洁的代码结构和高度的可扩…