MongoDB $rankFusion 집계 단계는 입력 파이프라인 내에 $vectorSearch 를 지원합니다. $rankFusion 를 사용하여 동일한 파이프라인에서 동일한 컬렉션에 대해 여러 $vectorSearch 쿼리를 결합할 수 있습니다. $rankFusion 은 먼저 모든 입력 파이프라인을 독립적으로 실행한 다음 중복을 제거하고 입력 파이프라인 결과를 결합하여 최종적으로 순위가 매겨진 결과 집합으로 만듭니다. 단일 파이프라인에서 여러 컬렉션에 대해 여러 $vectorSearch 쿼리를 실행하려면 $unionWith를 사용합니다.
사용 사례 및 이점
$rankFusion 파이프라인을 사용하면 다음 유형의 $vectorSearch 쿼리를 실행할 수 있습니다.
동일한 필드에서 유사한 용어에 대해 여러
$vectorSearch쿼리를 실행합니다.이 기능은 동일한 쿼리 내에서 데이터셋을 검색하여 유사한 용어를 포괄적으로 검색할 수 있도록 합니다.
여러 필드에 대해 동일한 용어로
$vectorSearch쿼리를 실행합니다.이 기능을 사용하면 데이터셋의 여러 필드를 검색하여 쿼리에 가장 적합한 결과를 반환하는 필드를 확인할 수 있습니다.
동일한 텀에 대해 서로 다른 임베딩 모델의 임베딩을 대상으로 여러
$vectorSearch쿼리를 실행합니다.이 기능을 사용하면 다양한 임베딩 모델의 임베딩을 검색하여 서로 다른 모델 간의 의미 해석 차이를 파악할 수 있습니다.
튜토리얼 소개
이 튜토리얼에서는 sample_mflix 데이터베이스의 컬렉션에 대해 다양한 $vectorSearch 쿼리를 실행하는 방법을 설명합니다. embedded_movies 컬렉션의 벡터 임베딩을 사용하여 샘플 쿼리를 시도하거나 자동 임베딩을 사용하여 샘플 데이터에 대한 임베딩을 생성할 수 있습니다.
전제 조건
시작하기 전에 클러스터가 필수 구성 요소에 설명된 요구 사항을 충족하는지 확인하세요. 이 외에도 다음 사항이 설치되어 있어야 합니다.
MongoDB Vector Search 인덱스 만들기
이 섹션에서는 sample_mflix.embedded_movies 네임스페이스에 MongoDB 벡터 검색 인덱스를 생성합니다. 이 섹션에서는 다양한 쿼리를 실행하는 데 사용할 수 있는 인덱스 정의를 보여줍니다.
MongoDB Vector Search 쿼리 실행
결과 재정렬
이 섹션에서는 $rerank 단계를 사용하여 쿼리 결과의 순서를 다시 정렬합니다.