2016-04-11 4 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 не влияют на оценку; их единственная цель - , чтобы исключить документы, которые могли бы быть включены.

Смежные вопросы