Показывать все результаты/ковши агрегатов 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

74
задан 08 апр. '14 в 6:41
источник поделиться
3 ответов

Параметр 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 и далее

Изменить

Обновление ответа на основе комментария @PhaedrusTheGreek.

size:0 устаревает в 2.x, из-за проблем с памятью, вызванных вашим кластером, с высокими значениями поля. Подробнее об этом читайте в gitub здесь.

Рекомендуется явно установить разумное значение для size числа от 1 до 2147483647.

115
ответ дан 08 апр. '14 в 6:55
источник

Но BTW, on https://github.com/elasticsearch/elasticsearch/issues/1776

был закрыт 22 июня, мой elasticsearch был загружен и установлен до этого дня, поэтому предположим, что вы можете получить его, если у вас есть последняя версия

1
ответ дан 11 июля '14 в 9:15
источник

Как показать все ведра?

{
  "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".

0
ответ дан 20 дек. '17 в 2:14
источник

Другие вопросы по меткам или Задайте вопрос