본문 바로가기
IT/Elasticsearch

Result window is too large... index.max_result_window

by 최고영회 2022. 8. 23.
728x90
반응형
SMALL

paging 처리 해서 데이터를 가져올 때 

Result window is too large, from + size must be less than or equal to: [10000] but was [10020]. 
See the scroll api for a more efficient way to request large data sets. 
This limit can be set by changing the [index.max_result_window] index level paramete

이런 오류가 발생한다. 

 

elasticsearch 에서 index 는 기본적으로 검색 시 데이터 최대 갯수 제한을 10,000 개로 설정하고 있다. 

이런 경우 검색조건을 조정해서 검색 결과가 10,000개를 넘지 않게 해야 하지만 그럼에도 max_result_window 를 넘길 가능성이 있끼 때문에 이런 경우 2가지 형태로 문제를 해결해야 한다. 

 

해결방법1)

  _settings 로 max_result_window 를 상향 조정하기 

  어느정도(?)는 괜찮겠지만 얼마나 상향 조정해도 괜찮을 지 환경과 상황에 따라 다르기 때문에 max_result_window 를 올리는 것은 그리 권장하지 않는다.

PUT indexName/_settings
{
  "max_result_window": 50000
}

   

해결방법2)

 paging 처리보다는 느리지만 Scrolling 이나 Search After 라는 기능을 이용 한다. 

 만약 일반적인 web application 에서 elasticsearch 를 이용한 검색 결과를 보여준다면 '검색' 이기 때문에 검색조건을

 상세하게 하고 result count 를 확인한 후 검색조건을 조정하라고 할 수 있겠다. 

 그런데 만약 검색조건 없이 전체 조회를 하고자 하는 경우에는 어떨까? 이런 경우에는 scrolling 방식으로 변경해서

 (next, next 로 다음 데이터 가져오기) 대응 하는 것이 좋다. 

728x90
반응형
LIST