2015-03-22 2 views
1

Я пытаюсь построить запрос, который будет возвращать результаты, только если они содержат определенное поле, но только если эти поля не равны определенному значению.ElasticSearch query - существует, но не содержит

Я не могу управлять правильный синтаксис:

POST webdata/interaction/_search 
{ 
    "query": { 
     "filtered": { 
     "filter": { 
      "exists": { 
       "field": "mediaType" 
      }, 
      "and": { 
       "not" { 
        "term" : { "mediaType" : "none" } 
       } 
      } 
     } 
     } 
    } 
} 

ответ

4

Используйте Bool Filter с must и must_not пунктами.

{ 
    "query": { 
     "filtered": { 
      "filter": { 
       "bool": { 
        "must": { 
         "exists": { 
          "field": "mediaType" 
         } 
        }, 
        "must_not": { 
         "term": { 
          "mediaType": "none" 
         } 
        } 
       } 
      } 
     } 
    } 
}