ElasticSearch 색인을 검색 할 때 documentation에 따라 정렬을 적용 할 수 없습니다. 그러나이 과정에서 결과의 순서에 대한 정의가 있습니까? 그렇다면 예상 할 수 있습니까?신축성있는 검색 색인을 스캔/스크롤 할 때 예측 가능한 순서가 있습니까?
배경 정보 :
나는 regulary에 5M 문서에 대한 작업을 할 필요가는 1.000 문서의 각 배치가 약 1 분을 복용 처리 할 수 있습니다. 프로세스가 실행될 때마다 완료 될지 확신 할 수 없으므로 마지막으로 중단 된 작업을 선택하도록하고 싶습니다. 스크롤 결과가 ID
으로 정렬 되었다면 (나는 알 수 있습니다.), 내 코드에서 마지막으로 처리 된 ID
을 추적하고 다음 실행시 더 이상 모든 문서를 ID <= lastProcessedId
으로 처리하지 않고 모든 문서 정기적으로 처리됩니다.
Btw : "문서 처리"는 색인에 추가 정보를 쓰는 것이 아니라 데이터베이스의 다른 것들을 업데이트하는 것을 의미합니다. 필자의 경우에는 타임 스탬프를 쓰는 것이 도움이되지 않을 것입니다. 왜냐하면 프로세스가 중단되는 이유 중 하나는 인덱스가 새로운 인덱스 (처음부터 다시 빌드 됨)로 대체 될 수 있기 때문입니다. 데이터베이스에 처리 된 타임 스탬프를 쓰는 것도 나에게 바람직한 옵션이 아닙니다. 반복 성능이 인덱스를 사용하여 처음부터 스크롤하는 이유입니다. ...
당신의 의견을 보내 주셔서 감사합니다 ... 나는 아마도 데이터베이스를 반복하는 것으로 되돌릴 것입니다. 왜냐하면 범위 쿼리를 수행 할 때 인덱스를 반복하는 것의 주된 이점 (초고속 반복)이 더 이상 적용되지 않기 때문입니다. – peterp