2015-09-25 61 views

回答

0

期限过滤

术语滤波器用于通过精确值来过滤,无论是数字,日期,布尔值,或not_analyzed准确值字符串字段:

{“术语“:{”age“:26}} {”term“:{”date“:
”2014-09-01“}} {”term“:{”public“:true}} {”term“:{ “tag”:“full_text”}}

布尔过滤

的布尔滤波器由三个部分组成:

{ “布尔”:{ “必须”:[], “应该”:[], “ must_not”:[],}}

必须

所有这些条款必须匹配。 AND的等价物。

must_not

所有这些条款都必须不匹配。 NOT的等价物。

应该

至少这些条款中的一项必须匹配。 OR的等价物。 就是这样!当您需要多个过滤器时,只需将它们放入bool过滤器的不同部分即可。

查看以下链接可能会有所帮助:

https://www.elastic.co/guide/en/elasticsearch/guide/current/combining-filters.html

https://www.elastic.co/guide/en/elasticsearch/guide/current/_most_important_queries_and_filters.html

+0

我想问一下如果我用must []比较和[],应该[]比较还是[]有什么区别? – huuthang

0

必须过滤

必须过滤是一样一样的布尔 '与' 运算符和必须在它必须检索的子句。

应该过滤器:它就像是布尔型'OR'运算符,并且如果'MUST'子句不存在,至少应该有一个应该执行的子句。

Term Filter:它基本上用于采取确切的值,如数字,日期和not_analyzed领域。