Tech 기록지/Elastic Stack

[ElasticStack-28] search.max_buckets, max_result_window 사이즈 증가

Lio Grande 2020. 8. 18. 11:13

Elasticsearch에서 모든 검색/집계의 기본 size는 10,000으로 설정되어 있다.

 

이중 집계는 bucket이라는 것을 사용하여 전체 문서를 대상으로 사용자의 기준(Ex : filter 등)에 따라 분류된 결과를 aggs 기능을 통해 표현한다.

 

bucket의 size를 변경하려면 다음과 같은 방법들이 있다.

PUT _cluster/settings
{
  "transient": {
    "search.max_buckets": 20000
  }
}

해당 방식은 API를 활용하여 size를 조절하는 방식이다.

# $ES_HOME/config/elasticsearch.yml

"search.max_buckets": 20000

해당 방식은 Elasticsearch의 설정파일의 값을 조절하는 방식이다.

 

두 가지 방식 모두다 적용 후 Node (또는 Cluster)를 재실행해주어야 한다.

추가적으로 Size는 무한정 늘릴수 있지만 이에 반비례하여 검색 속도는 저하되며, 예기치 못한 Critical Error가 발생할 수 있다.

 

참고 링크 : discuss.elastic.co/t/increasing-max-buckets-for-specific-visualizations/187390

 

Increasing max_buckets for specific Visualizations

Hi, Today we ran into an error when viewing a Visualization for a period of 24 hrs.Error Said "Courier fetch: 1 out of 8 shards failed". On deeper inspection, we found that the query for Visualization gave error for max_buckets.Our setting for max_buckets

discuss.elastic.co

 

2021.03.03 추가사항

검색 시 검색 결과 수를 늘리는 방법은 다음의 명령어를 Dev Tool에서 수행해주면 된다.

PUT /인덱스명/_settings
{
	"max_result_window": 50000
}