2015-03-13 6 views
0

Я изучаю Elasticsearch, читая книгу под названием Elasticearch Cookbook (2ed). Он имеет следующий пример запроса:Elasticsearch: как вернуть все значения фасет в агрегацию

{ 
    "query": { 
     "match_all": {} 
    }, 
    "aggs": { 
     "tag": { 
      "terms": { 
       "field": "tag", 
       "size": 10 
      } 
     } 
    } 
} 

Согласно книге,

size (by default 10): This controls the number of facets value that is to be returned. 

Мне интересно об этом: как вернуть все значения фасетов, если я не знаю, общее число значений фасета заранее?

Извините, если мой вопрос настолько очевиден.

Спасибо и приветствую.

ответ

1

размер набора в 0 (то же самое, установив его Integer.MAX_VALUE)

Будьте осторожны, так как это будет работать ужасно, если у вас есть много значений огранкой.

См. http://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html

+0

Большое спасибо за помощь! Я вижу немного несогласованность в ES API. Я знаю, что при выполнении поиска агрегации размер = 0 на URL REST означает возврат NO документов, а только ведра. Теперь для ВСЕХ значений грани, здесь мы снова используем size = 0. Твоя мысль? – curious1

+0

Я думаю, что это справедливая критика –