它匹配与其他查询的布尔组合相匹配的文档的一种查询,。bool查询映射到Lucene BooleanQuery。它是使用一个或多个布尔子句构建的,每个子句都有一个类型化引用。事件类型为:
must | 子句(query)必须出现在匹配的文档中,并将对分数起作用。 |
filter | 子句(query)必须出现在匹配的文档中。但是,查询的分数将被忽略。filter子句在fiter上下文中执行,这意味着忽略评分,并考虑缓存子句。 |
should | 子句(query)应出现在匹配文档中。 |
must_not | 子句(query)不得出现在匹配的文档中。子句在filter上下文中执行,这意味着评分被忽略,子句被考虑用于缓存。因为评分被忽略,所以返回所有文档的0分。 |
bool query采用了“匹配越多越好”的方法,因此来自每个匹配的must或should子句的分数将添加在一起,以提供每个文档的最终_score。
POST _search
{
"query": {
"bool" : {
"must" : {
"term" : { "user.id" : "kimchy" }
},
"filter": {
"term" : {