怎么解决elasticsearch should和must共存时should失效的问题
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"怎么解决elasticsearch should和must共存时should失效的问题",在日常操作中,相信很多人在怎么解决elasticsearch should和must共存时s
千家信息网最后更新 2026年10月31日怎么解决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安全错误
数据库的锁怎样保障安全
喔噻互联网科技有限公司
天津市摩尔互联网科技
科技互联网企业
科技与互联网
科技与互联网发展
互联网金融公司科技
亿策互联网科技
致聘互联网科技
佰商互联网科技有限公司
左右互联网络科技
江苏南京365互联网科技
西藏七维空间互联网科技有限公司
广州恒生互联网科技有限
辽宁互联网新科技
链环科技传统企业怎么转型互联网
保险科技服务互联网营销体系
雨阳互联网卡科技有限公司
美国互联网科技公司
西安左小互联网科技有限公司
互联网科技快速发展优美句子
互联网科技会
没上市的科技互联网公司
未来的互联网科技
互联网 视角下的科技创新
互联网高科技股票
互联网科技大会
互联网科技股有哪些
成都仁贤领冠互联网科技有限公司
福州新华互联网科技学校 知乎
广州智享互联网科技