Гистограмма даты Elasticsearch: убедитесь, что последний интервал является полным интервалом
Можно ли считать интервалы в обратном направлении от конца диапазона? Мне бы хотелось, чтобы последний сегмент, возвращаемый из агрегации date_histogram, представлял собой полный интервал, заканчивающийся в последний день моего диапазона дат.
Например, это
{
"size": 0,
"query": {
"bool": {
"must": [
{
"range": {
"date": {
"format": "yyyy-MM-dd-HH-mm-ss",
"gte": "2017-09-04-00-00-00",
"lte": "2017-10-04-23-59-59"
}
}
}
]
}
},
"aggregations": {
"time_agg": {
"date_histogram": {
"field": "date",
"interval": "week",
"min_doc_count": 0,
"extended_bounds": {
"min": "2017-09-04",
"max": "2017-10-04"
}
}
}
}
}
Возвращает эти сегменты:
"buckets": [
{
"key_as_string": "2017-09-04T00:00:00.000Z",
"key": 1504483200000,
"doc_count": 11453
},
{
"key_as_string": "2017-09-11T00:00:00.000Z",
"key": 1505088000000,
"doc_count": 14083
},
{
"key_as_string": "2017-09-18T00:00:00.000Z",
"key": 1505692800000,
"doc_count": 14526
},
{
"key_as_string": "2017-09-25T00:00:00.000Z",
"key": 1506297600000,
"doc_count": 14904
},
{
"key_as_string": "2017-10-02T00:00:00.000Z",
"key": 1506902400000,
"doc_count": 1447
}
]
Последнее возвращенное ведро не является полным интервалом недели. Он начинается 2 октября и продолжается до 4 октября.
Я хотел бы, чтобы возвращенные ведра были:
"buckets": [
{
"key_as_string": "2017-09-04T00:00:00.000Z",
"key": ???,
"doc_count": ???
},
{
"key_as_string": "2017-09-06T00:00:00.000Z",
"key": 1505088000000,
"doc_count": ???
},
{
"key_as_string": "2017-09-13T00:00:00.000Z",
"key": ???,
"doc_count": ???
},
{
"key_as_string": "2017-09-20T00:00:00.000Z",
"key": ???,
"doc_count": ???
},
{
"key_as_string": "2017-10-27T00:00:00.000Z",
"key": ???,
"doc_count": ???
}
]
Последним интервалом в желаемых результатах является полный недельный интервал, заканчивающийся последним днем, указанным в диапазоне дат. Если какой-либо сегмент не является полным интервалом, он должен быть первым, который содержит самые старые данные.