Хорошо, я сделал это на своей дате (день за днем), поэтому настройте 360000 * 24 (число мс в интервале date_histogram, день для меня).
Второе, что вы можете сделать, этосократить вашу дату на час (я имею в виду 14:03 => 14:00, 12:37 => 12 ч и т. д., округляя время до конца и вниз до времени начала)
Я неPro безболезненно, поэтому я сохраняю агг результат в предопределенном массиве (размер 99), может быть, мы можем сделать это с помощью списка чего-то динамического.В любом случае, если ваша сессия может длиться более 99 часов, настройте ее.
Сценарий создает массив агг по дням, разбивая час за часом даты.
{
"query": {
// your filter query
},
"aggs": {
"active_alerts": {
"date_histogram": {
"interval": "day",
"script": {
"inline": "def currentDate=(doc['sessionStartTime'].value); def endDate=(doc['sessionEndTime'].value); def combined=[99]; def counter = 0; while ((currentDate < endDate) && (counter < 99)) { combined[counter] = currentDate; currentDate += 3600000 * 24 } return combined",
"lang":"painless"
}
}
}
}
}
Надеюсь, это поможет, пустья знаю;)