elasticsearch-dsl:否定过滤器

Sap*_*uha 3 elasticsearch elasticsearch-dsl

我有一个这样的查询

   s = Search(using=es, index=indices)
   s = s.filter('range', 
                utctimestamp={'gte': begindateUTC, 'lte': enddateUTC})
         .filter("term",tags="foo").
         .sort("-utctimestamp")
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何取消过滤器?即不是foo。以上是使用过滤器的“必须”,例如

  "filter": {
    "bool": {
      "must": [
        {
          "range": {
            "utctimestamp": {
              "from": 1460407864660,
              "to": 1460409664660
            }
          }
        },
        {
          "fquery": {
            "query": {
              "query_string": {
                "query": "_type:(\"foo\")"
              }
            },
            "_cache": true
          }
        }
      ]
Run Code Online (Sandbox Code Playgroud)

我该如何将“foo”位设置为“不得”。

提前致谢

mbu*_*nik 6

您应该在子句中使用过滤器must_not

条款must_not不影响分数;它们的唯一目的是排除本来可能包含的文档。