2016-05-24 15 views
0

私の使用例では、ElasticsearchクエリでOR条件を追加したいと考えています。ここでは私のクエリは、私は私がまたは条件を追加しようとした、しかし、それは動作していないに沿って'term' => {"@dest" => dest}ElasticsearchルビークエリでOR条件を追加するには?

と@destため'term' => {"@dest" => ' '}空のチェックを追加したい、

query_body = { 
    'query' => { 
     'bool' => { 
      'must' => [{ 'range' => {'@timestamp' => { 'from' => stream_filters[:first_time].gmtime.strftime("%Y-%m-%dT%H:%M:%SZ"), 'to' => stream_filters[:second_time].gmtime.strftime("%Y-%m-%dT%H:%M:%SZ") } } }, {'term' => {"@timeout" => true} }, {'term' => {"@dest" => dest} }, {'term' => {"@source" => source} } ] 
       } 
       }, 'facets' => facets 
      } 

です。

query_body = { 
     'query' => { 
      'bool' => { 
       'must' => [{ 'range' => {'@timestamp' => { 'from' => stream_filters[:first_time].gmtime.strftime("%Y-%m-%dT%H:%M:%SZ"), 'to' => stream_filters[:second_time].gmtime.strftime("%Y-%m-%dT%H:%M:%SZ") } } }, {'term' => {"@timeout" => true} }, {'term' => {"@source" => source} } ], 
       'filter' => { 
        'or' => [{ 
         'term' => { "@dest" => dest } 
         'term' => { "@dest" => ' ' } 
         }] 
        } 
        } 
       }, 'facets' => facets 
      } 

誰かが私にこれを手伝ってもらえますか?

答えて

0

フィルタ句に構文エラーがあるようです。以下のように正しい構文で試してください:

'filter' => { 
      'or' => [ 
        { 
        'term' => { "@dest" => dest } 
        }, 
        { 
         'term' => { "@dest" => ' ' } 
        } 
        ] 
      } 
関連する問題