Elasticsearch 2.1에서 정보를 검색하고 사용자가 결과를 통해 페이지를 볼 수 있도록합니다. 사용자가 높은 페이지 번호를 요청하면 다음 오류 메시지가 표시됩니다.
결과 창이 너무 큽니다. from + size는 [10000]보다 작거나 같아야하지만 [10020]이었습니다. 대규모 데이터 세트를 요청하는보다 효율적인 방법은 스크롤 API를 참조하십시오. 이 제한은 [index.max_result_window] 인덱스 수준 매개 변수를 변경하여 설정할 수 있습니다.
탄력적 문서는 이것이 높은 메모리 소비와 스크롤링 API를 사용하기 때문이라고 말합니다.
보다 큰 값은 검색 및 검색을 실행하는 샤드 당 상당한 힙 메모리 청크를 소비 할 수 있습니다. 이 값은 딥 스크롤 https://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits에 대해 스크롤 API를 사용하기 때문에 그대로 두는 것이 가장 안전합니다.
문제는 큰 데이터 세트를 검색하고 싶지 않다는 것입니다. 결과 세트에서 매우 높은 데이터 세트에서만 슬라이스를 검색하고 싶습니다. 또한 스크롤 문서는 다음과 같이 말합니다.
스크롤은 실시간 사용자 요청을위한 것이 아닙니다. https://www.elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html
이로 인해 몇 가지 질문이 남습니다.
1) 결과 10000-10020에 대한 "일반"검색 요청을 수행하는 대신 스크롤링 API를 사용하여 결과 10020까지 스크롤 (및 10000 미만의 모든 항목 무시)하면 메모리 소비가 실제로 더 낮을까요 (그렇다면 왜 그렇습니까)?
2) 스크롤 API가 옵션이 아닌 것 같지만 "index.max_result_window"를 늘려야합니다. 누구든지 이것에 대한 경험이 있습니까?
3) 문제를 해결할 수있는 다른 옵션이 있습니까?
'Result window is too large, from + size must be less than or equal to: [10000] but was [47190]. 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 parameter.')
가 있습니다 4719 페이지 (모든 페이지 10 결과)가 있다고 말했습니다. 그리고 당신의 제안이 효과가 있다고 생각합니다.