Я попытался вызвать составную агрегацию в ES, но вернул лишь несколько результатов, очевидно, что составная агрегация выполняется только для 10 записей.
Тот же вопрос, что и в заголовке: Как составная агрегация эластичного поиска по всему индексу и возврат всего результата?
Запрос:
Ответ:
да, я хочу это сделать, но редактор переполнения стека предупредил меня, что в тексте что-то не так...
Параметр размера можно установить, чтобы определить, сколько составных сегментов должен быть возвращен. Каждое составное ведро рассматривается как отдельное сегмент, поэтому установка размера 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" } } }
]
}
}
}
}
Спасибо @Musab Dogan, но результат тот же, после установки размера в 1000
параметр size работает нормально в моей среде. Я обновил ответ и добавил пример, пожалуйста, проверьте и дайте мне знать.
Я обнаружил одну очень сложную проблему, размер работает, но он не работает в консоли инструментов разработчика Kibana, он работает в коде Java, и в коде Java я обнаружил, что если я добавлю более 10 составных столбцов, это уменьшит возвращаемый результат, но столбец меньше или равен 10, он вернет полный результат...
Пожалуйста, обновите свой вопрос и поделитесь им в виде текста, а не изображений, чтобы другие могли его найти.