elasticsearch 검색 결과의 스캔과 스크롤
scan
검색 형식과 scroll
API는 elasticsearch에서 대량의 문서를 얻을 수 있으며 깊이 페이지 나누기(deep pagination)의 영향을 받지 않습니다.scroll
스크롤 검색은 Elasticsearch에서 더 많은 결과가 없을 때까지 대량으로 결과를 가져올 수 있도록 합니다.이것은 보기에 약간 전통 데이터베이스 cursor
와 같다.검색을 스크롤하면 스냅샷이 즉시 검색됩니다.이것은 나중에 색인에 대한 변화의 영향을 받지 않을 것이다.오래된 데이터를 유지함으로써 검색을 시작할 때의'보기'를 유지한 것으로 볼 수 있다.scan
깊이 페이지를 나누는 데 가장 소모되는 자원의 부분은 결과에 대한 전체적인 정렬이다. 그러나 우리가 정렬을 닫으면 모든 문서를 되돌려줄 자원이 극히 적게 소모된다.이 경우 scan
검색 유형을 사용할 수 있습니다.scan
elasticsearch는 정렬을 하지 않고 결과가 있는 모든 조각에서 다음 조각(batch)을 되돌려준다고 알려줍니다.scan-and-scroll
를 사용하려면 search_type
을 scan
로 설정하는 검색 요청을 실행하고 scroll
파라미터를 전달하여 elasticsearch가 scroll을 얼마나 개방해야 하는지 알려 줍니다.GET /old_index/_search?search_type=scan&scroll=1m ...(1)
{
"query": { "match_all": {}},
"size": 1000
}
_scroll_id
검색 결과의 첫 번째 부분을 _scroll_id
에 전달할 것이다.GET /_search/scroll?scroll=1m ...(1)
c2Nhbjs1OzExODpRNV9aY1VyUVM4U0NMd2pjWlJ3YWlBOzExOTpRNV9aY1VyUVM
4U0NMd2pjWlJ3YWlBOzExNjpRNV9aY1VyUVM4U0NMd2pjWlJ3YWlBOzExNzpRNV9
aY1VyUVM4U0NMd2pjWlJ3YWlBOzEyMDpRNV9aY1VyUVM4U0NMd2pjWlJ3YWlBOzE
7dG90YWxfaGl0czoxOw== ...(2)
_search/scroll
body, URL 또는query 매개 변수를 통해 전달할 수 있음_scroll_id
.이 scroll 종료 시간은 우리가 scroll 요청을 실행할 때마다 갱신됩니다. 따라서 현재 결과의 일괄 처리를 위한 충분한 시간을 주십시오. 모든 일치하는 문서가 아니라.이 scroll의 응답은 첫 번째 결과를 포함합니다.비록 우리가
?scroll=1m
를 size
로 지정했지만, 우리는 더 많은 문서를 얻었다.scan에 있을 때 1000
각 조각에 작용하기 때문에 최대 size
문서를 얻을 수 있습니다.주의: scroll 요청도 새
size * number_of_primary_shards
로 되돌아옵니다.매번 우리가 다음 scroll 요청을 할 때마다 우리는 이전 scroll 요청 _scroll_id
을 전달해야 한다.만약 더 많은 명중이 없다면, 우리는 모든 일치하는 문서를 처리할 것이다.
주의: 일부 official Elasticsearch clients는 scan-and-scroll 도움말을 제공하여 사용하기 쉬운 봉인을 제공합니다.
작성자: Not_GOD
링크:http://www.jianshu.com/p/098896664bf7
출처: 약서
저작권은 작가의 소유이다.상업 전재는 작가에게 연락하여 권한을 얻으십시오. 비상업 전재는 출처를 밝히십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.