在ElasticSearch中以秒为单位转换date_histogram间隔

时间:2018-05-29 02:33:37

标签: elasticsearch groovy

我在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。

0 个答案:

没有答案