У меня есть набор документов в ES, которые представляют накопленную стоимость по времени.Например:
{
"timestamp": ...,
"raindrops_seen": 40,
...
}
Я хотел бы создать запрос, в котором я могу получить среднюю скорость (т. Е. Капель дождя) за указанный интервал в агрегации date_histogram.Я могу суммировать результаты для поля, но я не знаю, как получить интервал в секундах.Я надеялся, что есть простой способ сделать это в запросе без необходимости заранее преобразовывать его в секунды.
{
"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,, а также такие строки, как «неделя» и «день».Я использую ES 2.4.