2017-02-15 10 views
0

このSQLクエリを弾性検索クエリに変換するのを手伝ってもらえますか?あなたはHTTP POSTをやっていると仮定して、以下のようにあなたのクエリを持っている場合はどう弾性検索クエリの最大日付の検索

SELECT group,MAX(date) as max_date 
FROM table 
WHERE checks>0 
GROUP BY group 
+0

データモデル(elasticsearchインデックス)を追加してください。それがなければあなたを助けるのは本当に面倒です;) – NicolasY

答えて

1

の値を最大にするにはmaxのESの集約を使用し、GROUP BYの機能を実行するには、の用語の中のの範囲で使用します。

要求

yourhost:9200/your_index/_search

リクエストボディ:checks > 0については

{ 
    "query": { 
     "query_string": { 
      "query": "checks > 0" <-- check whether this works, if not use the range query 
     } 
    }, 
    "aggs": { 
     "groupby_group": { 
      "terms": { 
       "field": "group" 
      }, 
    "aggs": { 
     "maximum": { 
      "max": { 
       "script": "doc['date'].value" 
      } 
     } 
    } 
    } 
} 
} 

、あなたは内にもrangeクエリで行くことができますクエリは、 uldは次のようになります。

"range" : { 
     "checks" : { 
      "gte" : 0 
     } 
} 

This集計の実行に役立つ可能性があります。しかし、あなたが照会しようとする前に、あなたのelasticsearch.ymlからスクリプトを有効にしていることを確認して行ってください。

script.inline: on 

希望をこのことができます!