elasticsearch之多条件查询
在Elasticsearch中,可以使用bool查询来构建多条件查询。bool查询允许你组合其他查询类型,如match
、term
等,通过must
(所有条件都要满足)、should
(至少满足一个条件)、must_not
(所有条件都不能满足)等逻辑来创建复杂的查询。
以下是一个使用bool查询的例子,它结合了match
查询和bool
查询:
GET /_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "War and Peace" }},
{ "match": { "author": "Leo Tolstoy" }}
],
"filter": [
{ "term": { "publish_date": "2000-01-01" }},
{ "range": { "page_count": { "gte": 300 }}}
]
}
}
}
在这个例子中,我们执行一个搜索,要求书名包含"War and Peace"且作者是"Leo Tolstoy",同时还指定了出版日期是"2000-01-01"并且页数至少是300页。filter
部分用于不影响得分的过滤,适合用于在不影响全局搜索结果的前提下进行的筛选。
评论已关闭