Elasticsearch bool 查询:组合多个查询(must, should, must_not)
在Elasticsearch中,bool
查询允许你组合多个查询子句,并指定每个子句如何影响最终的结果。must
子句表示文档必须匹配这些查询,should
子句表示文档应该匹配这些查询(如果可能的话),而must_not
子句表示文档不应匹配这些查询。
以下是一个bool
查询的例子,它结合了must
, should
和must_not
子句:
GET /_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Brown" }},
{ "match": { "body": "green" }}
],
"should": [
{ "match": { "title": "quick" }},
{ "match": { "body": "fox" }}
],
"must_not": [
{ "match": { "title": "lazy" }}
]
}
}
}
在这个例子中,文档必须匹配title
字段中的"Brown"和body
字段中的"green"。此外,文档应该(但不强制)包含title
字段中的"quick"和body
字段中的"fox"。最后,文档不能包含title
字段中的"lazy"。
评论已关闭