Показать все результаты агрегации Elasticsearch / сегменты, а не только 10
Я пытаюсь перечислить все ведра на агрегации, но он, кажется, показывает только первые 10.
мои поиски:
curl -XPOST "http://localhost:9200/imoveis/_search?pretty=1" -d'
{
"size": 0,
"aggregations": {
"bairro_count": {
"terms": {
"field": "bairro.raw"
}
}
}
}'
возвращает:
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 16920,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"bairro_count" : {
"buckets" : [ {
"key" : "Barra da Tijuca",
"doc_count" : 5812
}, {
"key" : "Centro",
"doc_count" : 1757
}, {
"key" : "Recreio dos Bandeirantes",
"doc_count" : 1027
}, {
"key" : "Ipanema",
"doc_count" : 927
}, {
"key" : "Copacabana",
"doc_count" : 842
}, {
"key" : "Leblon",
"doc_count" : 833
}, {
"key" : "Botafogo",
"doc_count" : 594
}, {
"key" : "Campo Grande",
"doc_count" : 456
}, {
"key" : "Tijuca",
"doc_count" : 361
}, {
"key" : "Flamengo",
"doc_count" : 328
} ]
}
}
}
у меня есть гораздо больше, чем 10 ключей для этой агрегации. В этом примере у меня было бы 145 ключей, и я хочу подсчитать для каждого из них. Есть ли какая-то пагинация на ведрах? Я могу получить их все?
Я использую Elasticsearch 1.1.0
4 ответов:
параметр size должен быть параметром для примера запроса терминов:
curl -XPOST "http://localhost:9200/imoveis/_search?pretty=1" -d' { "size": 0, "aggregations": { "bairro_count": { "terms": { "field": "bairro.raw", "size": 0 } } } }'как уже упоминалось в документе работает только для версии 1.1.0 и далее
Edit
обновление ответа на основе комментария @PhaedrusTheGreek.
задание
size:0является устаревшим в 2.x и далее, из-за проблем с памятью, вызванных вашим кластером с высокими значениями поля мощности. Вы можете прочитать больше об этом в github проблема .Это рекомендуется явно установить разумное значение для
sizeчисло от 1 до 2147483647.
как показать все ведра?
{ "size": 0, "aggs": { "aggregation_name": { "terms": { "field": "your_field", "size": 10000 } } } }Примечание
"size":10000получить не более 10000 ведер. По умолчанию-10.
"size":0в результате"hits"содержится 10 документов по умолчанию. Они нам не нужны.по умолчанию ведра упорядочены по
doc_countв порядке убывания.
почему Я получаю
Fielddata is disabled on text fields by defaultошибка?, потому что fielddata отключена в текстовых полях по умолчанию. Если вы не выбрали неявно отображение типа поля, оно имеет динамические сопоставления по умолчанию для строковых полей.
Итак, вместо того, чтобы писать
"field": "your_field"вам нужно"field": "your_field.keyword".
Но, кстати, на https://github.com/elasticsearch/elasticsearch/issues/1776
is был закрыт в июне 22, мой elasticsearch был загружен и установлен до этого дня, так что предположим, что вы можете получить его, если есть последняя версия
Увеличьте размер (2-й размер) до 10000 в агрегациях терминов ur, и u получит ведро размера 10000.By по умолчанию его значение равно 10. Кроме того, если вы хотите увидеть результаты поиска ,просто сделайте 1-й размер до 1, Вы можете увидеть 1 документ, так как ES поддерживает как поиск, так и агрегацию.
curl -XPOST "http://localhost:9200/imoveis/_search?pretty=1" -d' { "size": 1, "aggregations": { "bairro_count": { "terms": { "field": "bairro.raw", "size": 10000 } } } }'
Comments