Преобразовать интервал date_histogram в секундах в ElasticSearch - PullRequest
0 голосов
/ 29 мая 2018

У меня есть набор документов в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...