我在Elasticsearch中處理的文檔具有持續時間的概念,表示爲開始和結束時間,例如,Elasticsearch在一段時間內的日期直方圖聚合
{
issueId: 1,
issuePriority: 3,
timeWindow: {
start: "2015-10-14T17:00:00-07:00",
end: "2015-10-14T18:00:00-07:00"
}
},
{
issueId: 2,
issuePriority: 1,
timeWindow: {
start: "2015-10-14T16:50:00-07:00",
end: "2015-10-14T17:50:00-07:00"
}
}
我的目標是生成一個直方圖,其中問題數量及其最大優先級彙總爲15分鐘的桶。因此,對於上面的示例,issue #1
將被分爲17:00
,17:15
,17:30
和17:45
桶,不多不少。
我嘗試使用date_histogram
聚集,e.g:
aggs: {
max_priority_over_time: {
date_histogram: {
field: "timeWindow.start",
interval: "15minute",
},
aggs: {
max_priority: ${top_hits_aggregation}
}
}
}
但顯然它只是bucketizing issue #1
到17:00
桶。即使我考慮到timeWindow.end
,它也只會被添加到18:00
存儲桶中。有誰知道我如何使用date_histogram
或其他Elasticsearch聚合來完成此操作?從timeWindow.start
到timeWindow.end
可能會產生一個時間範圍15分鐘的時間範圍,以便它們可以正確bucketized。謝謝。
感謝您的回答,但問題在於我需要在代碼中動態生成所有可能的15分鐘範圍。而且我不知道我的數據的時間範圍會是什麼。如果我需要查詢說1周的持續時間,那麼範圍的數量是巨大的!我想知道是否有其他解決方案。 –