2015-05-21 6 views
8

meine Frage ist wie folgt:Elasticsearch die Begriffe Filter raise "Filter nicht unterstützt [mediatest]"

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "term": { 
       "online": 1 
       } 
      }, 
      { 
       "terms": { 
       "mediaType": "flash" 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 

es werfen eine QueryParsingException [[comos_v2] [Bedingungen] Filter nicht unterstützt [media] ], von denen das Feld "mediaType" im Mapping nicht existiert. meine Frage ist, warum Begriff Filter nicht die Ausnahme auslöst?

Antwort

16

Das obige ist keine gültige Query DSL. In den obigen Terms filter die Werte sollte auf „media“ Feld ein Array

Es sollte die folgende sein:

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "term": { 
       "online": 1 
       } 
      }, 
      { 
       "terms": { 
       "mediaType": ["flash"] 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

ich es! Ich danke dir sehr. –

+0

Nur zur Klarstellung: Sollte die korrigierte Abfrage nicht einen "Terms" -Filter mit dem Wert "mediaType" anstelle von "term" verwenden? –

+0

@BrandonBrown dein Recht haben die Antwort danked für das Aufzeigen bearbeitet – keety

Verwandte Themen