怎么解决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安全错误
数据库的锁怎样保障安全
苏州找大状互联网科技有限公司
西安互联网科技
期待互联网科技
互联网科技的英文
奇士达互联网科技
北京华百购互联网科技有限公司
佳云科技和互联网广告
厦门比较好的科技互联网公司
岳阳华臻互联网科技有限公司
移动互联网科技公司
互联网科技研发水平
互联网公司黑科技创始人
晋城互联网科技
领航科技大厦互联网公司
工业互联网科技成果转化
全球科技与互联网公司市值变化
互联网金融运营模式中的金融科技
同城互联网络科技
互联网科技博主张洲
伍佰万互联网科技是干嘛的
手磨咖啡
嘟嘟瓜互联网科技
互联网科技缩写
万达互联网科技
海南科技产业互联网平台
赶超互联网科技 微信多开
本届互联网博览会上的黑科技
徐州市互联网科技有限公司
烟台灵鸽互联网科技有限公司
六子台科技互联网展会