2017-10-10 11 views
-3

私は弾性検索インデックスを持っています。ここで列は国と専門知識です。私はこのクエリを書くにはどうすればよい弾性検索クエリ:(AまたはB)と(CまたはD)

私は 国である記録(米国または英国) と 専門知識は、(植物学や物理学)で取得することができますクエリを記述する必要がありますか?

あなたは以下のようにこれを行うには booltermsクエリを使用することができます

答えて

1

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "terms": { 
         "Country": [ 
         "USA", 
         "UK" 
         ] 
        } 
       }, 
       { 
        "terms": { 
         "Expertise": [ 
         "Botany", 
         "Physics" 
         ] 
        } 
       } 
      ] 
     } 
    } 
} 

だけこれを行うにはboolクエリを使用することができる一方:

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "bool": { 
         "should": [ 
          { 
           "term": { 
           "Country": { 
            "value": "USA" 
           } 
           } 
          }, 
          { 
           "term": { 
           "Country": { 
            "value": "UK" 
           } 
           } 
          } 
         ] 
        } 
       }, 
       { 
        "bool": { 
         "should": [ 
          { 
           "term": { 
           "Expertise": { 
            "value": "Botany" 
           } 
           } 
          }, 
          { 
           "term": { 
           "Expertise": { 
            "value": "Physics" 
           } 
           } 
          } 
         ] 
        } 
       } 
      ] 
     } 
    } 
} 

しかし、documentationを見てください他の質問をする前にたぶん、あなたはより短いクエリを見つけるかもしれません。

+0

ありがとうございました。 2番目の選択肢が働いた。 –

関連する問題