我有一套ES格式的文件,代表时间的累积值。例如:
{
"timestamp": ...,
"raindrops_seen": 40,
...
}
我想创建一个查询,在这里我可以得到一个日期直方图聚合中指定时间间隔的平均速率(即雨滴数)。我可以总结现场的结果,但我不知道如何以秒为单位计算时间间隔。我希望有一种简单的方法可以在查询中实现这一点,而无需事先转换为秒数。
{
"query": {
...
},
"aggregations": {
"by_hour": {
"date_histogram": {
"field": "timestamp",
"interval": "0.5h",
"extended_bounds": {
"min": "now/d-5h",
"max": "now/d-1h"
}
},
"aggregations": {
"sum_raindrops": {
"sum": {
"field": "raindrops_seen"
}
},
"avg_scripts": {
"bucket_script": {
"buckets_path": {
"var_sum_raindrops": "sum_raindrops"
},
"script": "var_sum_raindrops / (?)"
}
}
}
}
}
}
是否有一种简单的方法将“0.5h”或间隔中指定的任何值转换为秒?日期直方图支持中指定的间隔
https://www.elastic.co/guide/en/elasticsearch/reference/2.4/common-options.html#time-units
,以及“week”和“day”等字符串。我用的是ES 2.4。