怎么解决elasticsearch should和must共存时should失效的问题
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍"怎么解决elasticsearch should和must共存时should失效的问题",在日常操作中,相信很多人在怎么解决elasticsearch should和must共存时s
千家信息网最后更新 2025年01月23日怎么解决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安全错误
数据库的锁怎样保障安全
青海超算套料软件开发商
服务器开启文件共享
刺客信条服务器卡住了怎么办
长沙直销软件开发前十名
js闭包数据库
实惠的app软件开发设计
国外服务器可以做什么
三年级手抄报网络安全写什么
数据库阻塞和死锁如何修复
课程设计计算机网络技术
网络安全法读后感
都江堰市网络技术专业
服务器 3u
一个存储服务器做下来多少钱
软件开发学历好找工作吗
运营服务器
服务器新建文件夹
联邦网络安全公司
网络安全信息产业人才发展报告
从事网络安全学什么专业
软件开发体会
抖音视频储存数据库
网络安全防护喷雾定妆
中国联通网络技术岗面试问什么
富民创新软件开发咨询报价
网络安全手抄报文字内容清楚
x86服务器的raid卡通用吗
epic服务器什么时候
服务器多个默认路由
海洋环境数据库 公司