您能帮我将此 sql 查询转换为 Elasticsearch 查询吗?
SELECT group,MAX(date) as max_date
FROM table
WHERE checks>0
GROUP BY group
最佳答案
如果您的查询如下,假设您正在执行HTTP POST
,该怎么办?您可以简单地使用 max ES 的聚合以获得 max 值,并在 aggs 中使用 terms 以获得 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"
}
}
}
}
}
}
对于检查> 0
,您可以使用 range查询以及查询中的查询,可能如下所示:
"range" : {
"checks" : {
"gte" : 0
}
}
This有人可以帮助您执行聚合。但在尝试查询之前,请确保您已从 elasticsearch.yml 启用脚本:
script.inline: on
希望这有帮助!
关于elasticsearch - 在 Elasticsearch 查询中查找最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42252342/