Я попытался вызвать составную агрегацию в ES, но вернул лишь несколько результатов, очевидно, что составная агрегация выполняется только для 10 записей.
Тот же вопрос, что и в заголовке: Как составная агрегация эластичного поиска по всему индексу и возврат всего результата?
Запрос:
Ответ:
🤔 А знаете ли вы, что...
Elasticsearch предоставляет множество инструментов для мониторинга и управления кластером.
Параметр размера можно установить, чтобы определить, сколько составных сегментов должен быть возвращен. Каждое составное ведро рассматривается как отдельное сегмент, поэтому установка размера 10 вернет первые 10 составных сегменты, созданные из источников значений. В ответе содержится значения для каждого составного сегмента в массиве, содержащем значения извлекается из каждого источника ценности.
Defaults to 10
.
GET /_search
{
"size": 0,
"aggs": {
"my_buckets": {
"composite": {
"size": 2, <--- update this
"sources": [
{ "date": { "date_histogram": { "field": "timestamp", "calendar_interval": "1d" } } },
{ "product": { "terms": { "field": "product" } } }
]
}
}
}
}
Вот пример:
PUT composite/_doc/1
{
"product": ["foo", "bar"],
"number": [23, 65, 76, 61, 60, 85]
}
GET composite/_search
{
"size": 0,
"aggs": {
"my_buckets": {
"composite": {
"size": 20,
"sources": [
{ "products": { "terms": { "field": "product.keyword" } } },
{ "numbers": { "terms": { "field": "number" } } }
]
}
}
}
}