Предположим, у меня есть отображение эластичного поиска, подобное этому:
{
"properties": {
"when": {
"type": "date_range"
},
"amount": {
"type": "long"
}
}
}
и я индексирую пару документов:
{
"amount" : "100",
"when" : {
"gte" : "2018-08-01T13:00:00Z",
"lt" : "2018-08-01T14:00:00Z"
}
}
{
"amount": 99,
"when": {
"gte": "2018-08-01T23:00:00Z",
"lt": "2018-08-02T02:00:00Z"
}
}
Обратите внимание, что диапазон дат для первого полностью находится в пределах 1 августа, но диапазон дат для второго попадает через границу 1/2 августа (в соотношении 1: 2).
Как мы можем создать агрегацию с контейнерами для каждого дня, суммируя поле «сумма» в каждом пакете - но где вклад каждого документа пропорционален соответствующим дням. Таким образом, с этими двумя документами мы получили бы два ведра (одно за 1 августа, одно за второе) с суммами 133 для первого и 66 для второго.