2016-11-02 11 views
0

elasticsearchで次のリクエストを行いたいだけです。 SQLでElasticSearchを行う方法Distinctを選択

Select distinct(id) from my_table where userid = '20' or activity = '9'; 

私は持っている:事前に

{ 
    "query" : { 
     "bool" : { 
       "should" : [ 
        { "term" : { "userid" : "20" } }, 
        { "term" : { "activity" : "9" } } 
       ] 
     } 
    } 
} 

感謝:)

答えて

2

あなたはほとんどそこにいると、あなたは、単にあなたのクエリにterms aggregationを追加する必要があります

{ 
    "query" : { 
     "bool" : { 
       "should" : [ 
        { "term" : { "userid" : "20" } }, 
        { "term" : { "activity" : "9" } } 
       ] 
     } 
    }, 
    "aggs":{ 
     "unique_ids": { 
      "terms": { 
       "field": "id" 
      } 
     } 
    } 
} 
+0

ありがとうございます完璧:) – DyM

+0

喜んでそれが助け! – Val

+0

@Valにすると、 "Fielddataはデフォルトでテキストフィールドで無効になっています。逆インデックスを反転してメモリにフィールドデータをロードするには、[some_id]にfielddata = trueを設定してください。任意のアイデアキューを変更して回避する方法。また、mabyeを定義することは不可能です。独自の要素がスローされず、多分いくつかのフィールドを取り、いくつかのフィールドを別のものにすることもできません。 – aholbreich

関連する問題