2017-08-31 15 views
0

Iは、以下の疑似コードに相当探している:Elasticsearch相当ここで、x = 1 AND(Y = 2またはy = 3)

SELECT id, age         // works 
    FROM students         // works 
WHERE firstname = 'John'      // works 
    AND gender = 'm'        // works 
    AND (lastname = 'Doe' OR lastname = 'Wayne') // no idea 

私の現在のコード:

{ 
    // ... 
    query: { 
     bool: { 
      must: [ 
       { match: { firstname: 'John' }}, 
       { match: { gender: 'm' }}, 
      ] 
     } 
    } 
} 

私はORで苦労しています。

アイデア?

ありがとうございます!

+1

このhttps://www.elastic.co/guide/en/elasticsearch/guide/current/_finding_multiple_exact_valuesを見てください。 html –

答えて

1

試してみてください。

{ match: { lastname: /^(Doe|Wayne)$/ }} 
+0

マッチクエリは正規表現をサポートしていないので、私はこの動作に全く驚いています。 – Val

1

これを試してみてください:

{ 
    // ... 
    query: { 
     bool: { 
      must: [ 
       { match: { firstname: 'John' }}, 
       { match: { gender: 'm' }}, 
       { 
        bool: { 
        minimum_should_match: 1, 
        should: [ 
         { match: { lastname: 'Doe' }}, 
         { match: { lastname: 'Wayne' }} 
        ] 
        } 
       } 
      ] 
     } 
    } 
} 
関連する問題