2016-12-18 13 views
1

このクエリを使用して、ステータスが閉じられているか保留中であるか、全くステータスがないすべてのドキュメントを取得しようとしています。私が使用working.If'terms'と 'missing'を同時に使用する弾性検索クエリ

"query": { 
    "bool": { 
     "should": [ 
      "terms": { 
       "status": ["closed","pending"] 
      }, 
      "missing":{ 
       "field":"status" 
      } 
     ] 
    } 
} 

個別のクエリは、次のとおりです。 "query": { "bool": { "should": [ "terms": { "status": ["closed","pending"] } ] } }

は、それは2つのドキュメントを返します。

そして、私は

"query": { 
    "bool": { 
     "should": [    
      "missing":{ 
       "field":"status" 
      } 
     ] 
    } 
} 

を使用する場合には、3

これらの結果は、各query.Iのために適切であるだけで2つのクエリを組み合わせ、結果5.Whatはと間違っている取得したい戻ります最初のクエリ?

答えて

2

は、これは5.0クエリをESとそれが

POST es1/example/_search 
{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "terms": { 
      "status": [ 
       "closed", 
       "pending" 
      ] 
      } 
     }, 
     { 
      "bool": { 
      "must_not": [ 
       { 
       "exists": { 
        "field": "status" 
       } 
       } 
      ] 
      } 
     } 
     ] 
    } 
    } 
} 
+1

偉大バージョン2.0で動作するはずです。それは魅力のように働いた。 –

関連する問題