Zing은 4단계로 검색 결과를 생성합니다
문서를 샤드 간에 나누고, 샤드 문서를 검색하고, 샤드 문서의 점수를 매기고, 점수를 인덱스로 병합하여 검색 결과를 생성합니다.
Zing은 다음 4단계로 검색 결과를 생성합니다.
- 검색 가능한 문서를 인덱스 샤드 간에 나눕니다.
- 샤드 문서를 검색하고 필터링합니다.
- 샤드 문서에 점수를 매깁니다.
- 샤드 문서 점수를 인덱스로 병합합니다.
1단계: 검색 가능한 문서를 인덱스 샤드 간에 나누기
검색이 실행되면 시스템은 검색 가능한 모든 문서를 10개의 인덱스 샤드로 균등하게 나눕니다. 각 샤드에는 고유한 문서 목록이 있습니다.
검색 효율성을 극대화하기 위해 시스템은 10개의 쿼리 스레드를 생성하여 각 인덱스 샤드를 동시에 검색합니다.
2단계: 분할된 문서 검색 및 필터링
각 쿼리 스레드는 분할된 문서 목록을 검색하여 검색 조건과 일치하는 문서를 식별합니다. 예를 들어, "wifi network"를 검색하면 시스템은 "
wifi"와 "network"를 모두 포함하는 모든 문서를 특정 순서 없이 반환합니다.주:
여러 단어 검색은 AND 연산자로 연결된 여러 단일 단어 검색과 동일합니다. 예를 들어 [contains][wifi][AND][contains][network]입니다.
쿼리 스레드는 일치하는 각 문서에 숫자 값(문서 ID)을 할당하여 고유하게 식별합니다. 다른 모든 문서는 무시됩니다.
3단계: 샤드 문서 점수 매기기
쿼리 스레드는 일치하는 각 분할된 문서 점수를 매깁니다 .
4단계: 분할된 문서 점수 병합 및 정렬
시스템은 문서 점수를 단일 인덱스로 병합하고 문서 점수가 가장 높은 것부터 가장 낮은 것 순으로 문서를 정렬합니다. 문서 점수가 가장 높은 문서가 검색 쿼리와 가장 관련성이 높습니다.