怎么解决elasticsearch should和must共存时should失效的问题
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"怎么解决elasticsearch should和must共存时should失效的问题",在日常操作中,相信很多人在怎么解决elasticsearch should和must共存时s
千家信息网最后更新 2025年12月01日怎么解决elasticsearch should和must共存时should失效的问题
这篇文章主要介绍"怎么解决elasticsearch should和must共存时should失效的问题",在日常操作中,相信很多人在怎么解决elasticsearch should和must共存时should失效的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么解决elasticsearch should和must共存时should失效的问题"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
再使用must和should混合查询的时候,发现should并不起作用。
如a==1时搜索b=1或者b=2的数据,按照编程语言的逻辑则是在a=1的条件下必须满足b=1或者b=2,
所以must和should平级的写法是错误的。
注意错误写法
根据搜索结果可以发现should并未起作用
正确写法
$params = [ 'index' => 'news', 'type' => '_doc', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ ['match' => ['age' => 50]], ['bool' => [ 'should' => [ ['match' => ['content' => '西红柿']], ['match' => ['content' => '中国和美国']] ] ]] ] ] ] ] ]; $result = $this->es->search($params); var_dump($result);
搜索结果

例如在a=1且b=2的数据中,找出c=1或者d=2的数据:{"query": { "bool": { "must": [ {"term": {"a": "1"}}, {"term":{"b": "2"}} ], "should": [ {"term": {"c": "1"}}, {"term": {"d": "2"}} ] } }}这样写的时候should是没有用的,这是新手可能犯的错误之一。 在编写查询条件的时候,不能用口头上的逻辑进行编写,而是要换成数学逻辑才能进行执行(数据库同理)。 如上例,数学逻辑应该是 (a==1&&b==2&&c==1)||(a==1&&b==2&&d==2),这样的结构去查询。{"query": { "bool": { "should": [ {"term": {"a": "1"}}, {"term":{"b": "2"}}, {"term": {"c": "1"}} ], "should": [ {"term": {"a": "1"}}, {"term":{"b": "2"}}, {"term": {"d": "2"}} ] } }}思路就是以上那样,具体写法有2种:{ "query": { "bool": { "should": [ { "bool": { "must": [ {"term": {"a": "1"}}, {"term":{"b": "2"}}, {"term": {"c": "1"}} ] } }, { "bool": { "must": [ {"term": {"a": "1"}}, {"term":{"b": "2"}}, {"term": {"d": "2"}} ] } } ] } }, "sort": { "time": { "order": "desc" } }, "size": 100}或者:{ "query": { "bool": { "must": [ {"term": {"a": "1"}}, {"term":{"b": "2"}} { "bool": { "should": [ {"term": {"c": "1"}}, {"term": {"d": "2"}} ] } } ] } }, "sort": { "time": { "order": "desc" } }, "size": 100}到此,关于"怎么解决elasticsearch should和must共存时should失效的问题"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
问题
写法
数据
逻辑
学习
时候
错误
搜索
查询
作用
搜索结果
数学
更多
条件
结果
帮助
实用
接下来
口头
如上
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
传输网络技术慕课
服务器运行一切正常网页访问不了
数据库设计与约束
广东特色软件开发市场价
牛津数据库怎么看
长沙数据库哪家好
投资网络安全入门
网络安全指导原则第二版
小学网络安全组织领导
长沙学习软件开发要多少钱
交友软件开发怎么样
网络营销网络技术信息推荐
开发一个app为什么要数据库
什么叫数据库的字段和记录
服务器进入安全模式
洗衣服店管理系统数据库
长春安卓软件开发
数据库图名字
某某区网络安全事件应急预案
海思处理器串口通信软件开发
奉贤区节能软件开发服务设计标准
深圳天思软件开发有限公司
软件在服务器上运行费用多少
延庆区网络技术服务成本价
数据库集合查询和统计查询
网络安全工程专业能考研吗
网络安全知识主题的手抄报
网络安全蠕虫
服务器vps 安全
怎么访问服务器数据库