2013-04-11 45 views
13

我想獲得一個查詢,它可以返回滿足兩個過濾條件的json。我試圖讓已進料中的名爲「測試1」一個字段的響應,它也應該缺少一個字段「test2的」,我已經嘗試了查詢在單個查詢中使用缺少和存在的過濾器

{ 
"query": { 
    "filtered": { 
    "query": { 
    "match_all": {} 
    }, 
     "filter": { 
     "missing": { 
     "field": "test2" 
     }, 
     "exists": { 
     "field": "test1" 
     } 
     } 
    } 
    } 
} 

上述查詢將返回其擁有的所有字段字段「test1」,並且它還返回缺少字段「test2」的提要,我試圖縮小響應範圍,因爲我只希望提供滿足這兩個條件的提要。

回答

24

可以使用bool filter將兩個或多個過濾器:

{ 
    "query": { 
    "filtered": { 
     "query": { 
     "match_all": {} 
     }, 
     "filter": { 
     "bool": { 
      "must": [{ 
      "missing": { 
       "field": "test2" 
      } 
      }, { 
      "exists": { 
       "field": "test1" 
      } 
      }] 
     } 
     } 
    } 
    } 
} 
+0

這作品!非常感謝!!!! :) – sam 2013-04-11 12:29:52