2013-04-11 11 views
13

Her iki filtre koşulunu karşılayan bir json döndüren bir sorgu almaya çalışıyorum. IveEksik ve mevcut filtreyi tek bir sorguda birlikte kullanıyor

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

Yukarıdaki sorgu sahip tüm alanları döndüren sorgu çalıştı ben "test1" adlı bir alan içeren yem olan bir yanıt almak çalışıyorum ve aynı zamanda bir saha "test2" eksik olmalıdır "test1" alanı ve aynı zamanda "test2" eksik alanı olan feed'leri döndürür, yalnızca her iki koşulun da doyurulmasını istediğim yanıtları daraltmaya çalışıyorum.

cevap

24

Sen bool filter kullanarak iki veya daha fazla filtre birleştirebilirsiniz: çalışır

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

!! Çok teşekkürler!!!! :) – sam

İlgili konular