Zing은 4단계로 검색 결과를 생성합니다

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기1분
  • 문서를 샤드 간에 나누고, 샤드 문서를 검색하고, 샤드 문서의 점수를 매기고, 점수를 인덱스로 병합하여 검색 결과를 생성합니다.

    Zing은 다음 4단계로 검색 결과를 생성합니다.
    1. 검색 가능한 문서를 인덱스 샤드 간에 나눕니다.
    2. 샤드 문서를 검색하고 필터링합니다.
    3. 샤드 문서에 점수를 매깁니다.
    4. 샤드 문서 점수를 인덱스로 병합합니다.

    1단계: 검색 가능한 문서를 인덱스 샤드 간에 나누기

    검색이 실행되면 시스템은 검색 가능한 모든 문서를 10개의 인덱스 샤드로 균등하게 나눕니다. 각 샤드에는 고유한 문서 목록이 있습니다.

    검색 효율성을 극대화하기 위해 시스템은 10개의 쿼리 스레드를 생성하여 각 인덱스 샤드를 동시에 검색합니다.

    그림 1. 인덱스 샤드 간에 문서 나누기
    시스템은 검색 가능한 모든 문서를 샤드 0에서 샤드 9까지 10개의 인덱스 샤드로 나눕니다.

    2단계: 분할된 문서 검색 및 필터링

    각 쿼리 스레드는 분할된 문서 목록을 검색하여 검색 조건과 일치하는 문서를 식별합니다. 예를 들어, "wifi network"를 검색하면 시스템은 "wifi"와 "network"를 모두 포함하는 모든 문서를 특정 순서 없이 반환합니다.
    주:
    여러 단어 검색은 AND 연산자로 연결된 여러 단일 단어 검색과 동일합니다. 예를 들어 [contains][wifi][AND][contains][network]입니다.

    쿼리 스레드는 일치하는 각 문서에 숫자 값(문서 ID)을 할당하여 고유하게 식별합니다. 다른 모든 문서는 무시됩니다.

    3단계: 샤드 문서 점수 매기기

    쿼리 스레드는 일치하는 각 분할된 문서 점수를 매깁니다 .

    그림 2. 쿼리 스레드는 샤드 문서를 검색, 필터링 및 채점합니다.
    시스템은 10개의 쿼리 스레드를 만들어 샤드 문서를 검색, 필터링 및 채점합니다.

    4단계: 분할된 문서 점수 병합 및 정렬

    시스템은 문서 점수를 단일 인덱스로 병합하고 문서 점수가 가장 높은 것부터 가장 낮은 것 순으로 문서를 정렬합니다. 문서 점수가 가장 높은 문서가 검색 쿼리와 가장 관련성이 높습니다.

    그림 3. 조각 문서 점수 병합 및 정렬
    조각 문서 점수 병합 및 정렬