ElasticSearch DSL Bool查询
2023-12-22 06:33:13
Bool 查询的三个主要成分:must、should 和 must_not。
must:
这个条件是必须满足的。比如,你想找一本关于 Python 编程的书,那么你会在 must 里写上关键词 “Python”。
should:
这相当于你的偏好条件,可以有多个。比如,你希望这本书是最近出版的,或者是评分比较高的。这些条件用 should 来表示,ElasticSearch 会尽量满足它们,但如果不满足也没关系。
must_not:
这是一些你不希望包含在结果中的条件。比如,你可能不喜欢读电子书,那么你可以在 must_not 里写上 “电子书” 这个条件。
{
"bool": {
"must": {
"match": { "title": "Python" }
},
"must_not": {
"match": { "format": "电子书" }
},
"should": [
{ "range": { "publish_year": { "gte": 2022 } } },
{ "range": { "rating": { "gte": 4 } } }
]
}
}
在这个查询中,我们使用了 must 条件确保标题包含 “Python”,must_not 条件排除了电子书,而 should 条件包含了发布年份在 2022 年之后和评分在 4 分以上的偏好条件。
在range语句中,包括大于(gt)、大于等于(gte)、小于(lt)和小于等于(lte)。
文章来源:https://blog.csdn.net/Asura_____/article/details/135143548
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!