2017-07-13 3 views
0

のフィールドを検索します。使用してElasticsearch:私はElasticSearchでこのような何か書きたいNULLまたはリスト

SELECT * 
FROM ... 
WHERE name IS NULL OR name IN ("a","b","c"); 

私は書くことができますが、 "NULL IS" 一部:

{ 
    "query" : 
    { 
     "bool" : { 
     "must_not": { 
     "exists": { 
      "field": "name" 
     } 
     } 
    } 
    }  
} 

」リストに」一部:

{ 
    "query" : 
    { 
     "bool" : { 
      "should" : [ 
      { 
       "terms" : { 
       "name" : [ 
        "a", "b", "c" 
       ] 
       } 
      } 
      ] 
     } 
    }  
} 

しかし、私はOR(とないもちろんAND)を使用して、これらの2つのクエリをマージする方法を見つけることができません。

おかげ

答えて

0

あなたは、両方の

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "terms": { 
      "name": [ 
       "a", 
       "b", 
       "c" 
      ] 
      } 
     }, 
     { 
      "bool": { 
      "must_not": { 
       "exists": { 
       "field": "name" 
       } 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

感謝を結合するために、bool/shouldを使用することができます!それは動作します – user2813807

+0

素晴らしい、喜んでそれが助け! – Val

関連する問題