2015-05-21 98 views
8

我的查詢是這樣的:Elasticsearch條款過濾器加註 「過濾器不支持[mediatest]」

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

它提升一個QueryParsingException [comos_v2] [條款]過濾器不支持[mediaType的] ],其中字段「mediaType」在映射中完全不存在。 我的問題是爲什麼術語篩選器不會引發異常?

回答

16

以上不是有效的查詢DSL。在上述Terms filter的值「mediaType的」字段應該是一個數組

它應該是以下幾點:

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

我知道了!非常感謝。 –

+0

只是爲了澄清:不應該糾正的查詢使用值爲「mediaType」而不是「term」的「terms」過濾器? –

+0

@BrandonBrown您的權利編輯了答案感謝指出 – keety