2017-02-15 67 views
0

您能否幫我將此sql查詢轉換爲彈性搜索查詢?在彈性搜索查詢中查找最大日期

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

請添加您的數據模型(elasticsearch索引)。沒有它,幫助你是非常棘手的;) – NicolasY

回答

1

如果你有如下的查詢,假設你正在做一個HTTP POST。您可以使用ES的max聚合,以便獲得值並使用條款aggs以便完成GROUP BY功能。

請求

yourhost:9200/your_index/_search

請求正文:

{ 
    "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" 
      } 
     } 
    } 
    } 
} 
} 

checks > 0,可以內用range查詢去也查詢,其中co看起來像:

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

This可以幫助你執行聚合。但請你確認您已經啓用腳本elasticsearch.yml你嘗試在查詢之前:

script.inline: on 

希望這有助於!