Elastic scrollAPI와 search After API 차이
ELK2023. 4. 7. 13:50
728x90
회사에서 일하다가 용도를 해깔려 하는 사람들이 있길래 내가 만든건 아니고 회사 후배가 주로 작성 했다.
기록용으로 남겨둔다.
Scroll API | Search After | |
사용 | 일정시간 검색 컨텍스트(Scroll ID)를 유지하며 대량의 검색 결과를 처리 | 이전 페이지의 가장 마지막 문서를 기준으로 다음 페이지의 결과를 처리 |
장점 | - Scroll ID를 사용하여 대량의 검색 결과를 페이징 처리할 수 있다. - Search After 대비 검색시간이 오래 걸려도 문제가 되지 않는다. |
- Scroll ID를 유지하지 않아 메모리 부하가 적다. - 검색 중 다른 검색을 수행할 수 있다. |
단점 | - Scroll ID를 유지하기 때문에 메모리 부하가 생길 수 있다. - Scroll ID를 유지하면서 다른 검색을 수행할 수 없다. |
- 메모리 오버헤드는 낮지만, 속도가 상대적으로 느리다. - 정렬 기준을 바꾸거나, 다른 필드를 사용하여 검색하는 것이 어렵다. |
쿼리문 | POST /my-index/_search?scroll=1m { "query": { "match" : { "title" : "elasticsearch" } } } |
POST /my-index/_search?size=10 { "query": { "match" : { "title" : "elasticsearch" } }, "sort": [ { "date": "desc" }, "_doc" ], "search_after":[1463538857,"654323"] } |
결론 | 대량의 검색 결과를 처리하고, 검색 결과를 즉시 사용하지 않아도 되는 경우에 적합 ( 검색한 데이터 전체를 저장 하는 용도 등등 ) | 대량의 검색 결과를 빠르게 페이징 처리하고, 검색 결과를 즉시 사용해야 하는 경우에 적합 |
레퍼런스 | https://www.elastic.co/guide/en/elasticsearch/reference/current/scroll-api.html | https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html |
비고 | ES 공식 문서에서 스크롤API 대비 Search After API사용 권장 |
'ELK' 카테고리의 다른 글
효율적인 엘라스틱 업데이트는 어떻게 해야 할까? (0) | 2023.06.29 |
---|---|
_source field 원본 저장 기능 off (0) | 2023.04.16 |
검색시 최적화된 샤드 갯수 (0) | 2023.01.08 |
스냅샷 공유파일 방식 방법 (0) | 2023.01.04 |
대량의 데이터 Reindex 시 Task 죽는 현상 (0) | 2022.12.25 |
댓글()