ElasticSearch - 单击多个桶

时间:2017-10-18 07:08:01

标签: elasticsearch business-intelligence

假设我有一个单个 elasticsearch条目,其中包含两个日期字段 - t0和t1。 让我们说那些t0和t1是“2017-10-18T09:00:00”和“2017-10-18T12:00:00” - 就像在同一天,不同时间(为了简单起见)

我想执行一个聚合查询,它会在每小时给我一个桶命中 - 例如,每小时范围是09:00-12:00,我想得到3个桶 - 每小时一个桶在该范围内,每个都有一个命中 - 例如: 如果在09:00-12:00之间讨论相同的范围,那么我希望在下面的桶中计算相同的条目: 09:00-10:00 10:00-11:00 11:00-12:00

这甚至可能吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我插入了4个日期为:: 9:00,10:00,11:00,11:30

的文件
{
"size": 0, 
"aggs" : {
    "buckets" : {
        "date_histogram" : {
            "field" : "date",
            "interval" : "1h",
            "format" : "HH:mm" 
        }
    }
}
}

这将返回如下结果。

"aggregations": {
  "buckets": {
     "buckets": [
        {
           "key_as_string": "09:00",
           "key": 1508317200000,
           "doc_count": 1
        },
        {
           "key_as_string": "10:00",
           "key": 1508320800000,
           "doc_count": 1
        },
        {
           "key_as_string": "11:00",
           "key": 1508324400000,
           "doc_count": 2
        }
     ]
  }
  }

我想这是你想要的。