查询合并(Combining Queries)
在Combining Filters这一节我们讨论了在布尔过滤器中如何通过and/or/not逻辑来合并多个过滤子句(filte clauses),在查询中bool query跟bool filter是类似的除了一点。
在filter中它做的是一个yes/no的过滤:表示当前文档是否符合过滤条件(是否应该包含在结果集中),其结果只能是yes或no
在query中它不仅决定了文档是否包含在结果集中,同时也包含了该文档与查询文本的相似度评分
和bool filter一样bool query也通过must、must_not、should参数来组合多个查询子句(query clause),如下:
GET /my_index/my_type/_search
{
"query": {
"bool": {
"must": { "match": { "title": "quick" }},
"must_not": { "match": { "title": "lazy" }},
"should": [
{ "match": { "title": "brown" }},
{ "match": { "title": "dog" }}
]
}
}
}