2016-04-11 9 views
1

を否定私はこのelasticsearch-DSL:フィルタ

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

私の質問のようなクエリがどのようにフィルタを否定することができ、ある持っていますか?すなわちfooではない。 上記はフィルタを使用する「必須」です。

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

どのようにして 'foo'ビットにする必要はありませんか。事前

答えて

1

ありがとうございますmust_not句であなたのフィルタを使用する必要があります。

must_not節はスコアに影響しません。唯一の目的は、別の方法で含まれていたかもしれない文書を除外する です。