Range aggregation¶
Агрегация на фиксированное число корзин — заданных диапазонов. Запрос примерно такой:
{
"aggs": {
"income_ranges": {
"range": {
"field": "income",
"keyed": true,
"ranges": [
{ "from": 0, "to": 1 },
{ "from": 1, "to": 100000 },
{ "from": 100000, "to": 250000 },
{ "from": 250000, "to": 500000 },
{ "from": 500000, "to": 1000000 },
{ "from": 1000000, "to": 2000000 },
{ "from": 2000000, "to": 5000000 },
{ "from": 5000000, "to": 10000000 },
{ "from": 10000000, "to": 20000000 },
{ "from": 20000000, "to": 40000000 },
{ "from": 40000000, "to": 100000000 },
{ "from": 100000000, "to": 500000000 },
{ "from": 500000000, "to": 1000000000 },
{ "from": 1000000000 }
]
}
}
}
}
При этом
to ВХОДИТ в диапазон, а from — НЕ ВХОДИТ. Иными словами, { "from": 0, "to": 1 } → [0,1)В корзины попадают только документы с имеющимися значениями, так что если нужно учесть также количество документов БЕЗ значения, R.A. удобно использовать в связке с Missing, примерно так:
{
"aggs": {
"income_ranges": {
"range": {
"field": "income",
"keyed": true,
"ranges": [
{ "from": 0, "to": 1 },
{ "from": 1, "to": 100000 },
{ "from": 100000, "to": 250000 },
{ "from": 250000, "to": 500000 },
{ "from": 500000, "to": 1000000 },
{ "from": 1000000, "to": 2000000 },
{ "from": 2000000, "to": 5000000 },
{ "from": 5000000, "to": 10000000 },
{ "from": 10000000, "to": 20000000 },
{ "from": 20000000, "to": 40000000 },
{ "from": 40000000, "to": 100000000 },
{ "from": 100000000, "to": 500000000 },
{ "from": 500000000, "to": 1000000000 },
{ "from": 1000000000 }
]
}
},
"no_income": {
"missing": {"field": "income"}
}
}
}
Ссылки¶
Последнее обновление :
1 июля 2023 г.
Дата создания : 12 июля 2022 г.
Дата создания : 12 июля 2022 г.