一个由其他类型查询组合而成的文档匹配查询, 对应Lucene的 BooleanQuery
. 它可以由一个或者多个查询语句构成, 每种语句都有它们的匹配条件. 可能的匹配条件如下:
Occur | Description |
---|---|
must |
匹配的文档必须满足该查询语句. |
should |
匹配的文档可以满足该查询语句. 如果一个布尔查询(Bool Query)不包含 must 查询语句, 那么匹配的文档必须满足其中一个或多个 should 查询语句, 可以使用 minimum_number_should_match 参数来设定最低满足的数量. |
must_not |
匹配的文档必须不满足该查询语句. 注意, 不能只用一个 must_not 查询语句来搜索文档. |
布尔查询(Bool Query)也支持 disable_coord
参数 (默认为 false
).
{ "bool" : { "must" : { "term" : { "user" : "kimchy" } }, "must_not" : { "range" : { "age" : { "from" : 10, "to" : 20 } } }, "should" : [ { "term" : { "tag" : "wow" } }, { "term" : { "tag" : "elasticsearch" } } ], "minimum_number_should_match" : 1, "boost" : 1.0 } }