我只是深入研究ElasticSearch 1.0中的新聚合函数.我正在尝试在一堆文档(日志)上获取一些统计数据.
每个文档都算作命中,我想获取给定时间段内每小时的平均点击次数.每个文档都有一个日期时间引用,每个文档都被视为"命中".
第一个位很简单(查询和过滤),我得到了我想要在给定时间内匹配的所有文档.但我无法弄清楚如何获得平均文件数.
我可以每天,每小时获得所有文档的列表,并在客户端进行一些统计计算,但我很乐意在ElasticSearch中完成所有这些工作.我的猜测是可以通过doc_count完成,但我找不到任何关于它的信息.
我可以在给定的时间范围内获得一小时内所有文件的清单.如果我在一小时内尝试聚合:
"aggregations" : {
"articles_over_time" : {
"histogram" : {
"script" : "doc['created_at'].date.hourOfDay",
"interval" : 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个特定时期内每小时的文件清单,但是它们总和(),我希望得到一个平均值(甚至更好:实际的'统计'汇总).不在文档字段上,而是在doc_count本身上.有任何想法吗?