이 튜토리얼에서는 동일한 쿼리 조건에 대해 전체 텍스트 검색과 시맨틱 검색을 집계한 하이브리드 검색을 시연합니다. 전체 텍스트 검색은 쿼리 텀에 대한 정확한 일치를 찾는 데 효과적인 반면, 시맨틱 검색은 문서에 정확한 쿼리 텀이 포함되어 있지 않더라도 의미적으로 유사한 문서를 식별할 수 있는 추가 이점을 제공합니다. 이를 통해 동의어나 맥락적으로 유사한 결과도 두 검색 방법을 결합한 결과에 포함될 수 있습니다.
반대로 데이터 세트에 고유 명사나 특정 키워드에 대한 토큰이 포함되어 있다면 이러한 토큰이 데이터 세트에서 사용되는 동일한 맥락에서 임베딩 모델의 학습에 고려되지 않기를 원할 수 있습니다. 이 경우 벡터 검색을 전체 텍스트 검색과 결합하면 더 나은 결과를 얻을 수 있습니다.
또한 쿼리별로 각 검색 방법에 대한 가중치를 설정할 수 있습니다. 전체 텍스트 또는 시맨틱 검색 결과가 쿼리에 가장 관련성이 높고 적절한지 여부에 따라, 쿼리별로 해당 검색 방법의 가중치를 높일 수 있습니다.
튜토리얼 소개
이 튜토리얼에서는 영화에 대한 세부 정보가 포함된 sample_mflix.embedded_movies 컬렉션 에서 MongoDB Vector Search와 MongoDB Search 쿼리를 결합한 하이브리드 검색 실행 통합 검색 결과를 얻는 방법을 보여 줍니다. 구체적으로 이 튜토리얼에서는 다음 단계를 안내합니다.
plot_embedding_voyage_3_large필드 에 MongoDB Vector Search 인덱스 생성합니다. 이 필드 에는 영화 줄거리의 요약을 나타내는 벡터 임베딩이 포함됩니다.sample_mflix.embedded_movies컬렉션 의title필드 에 MongoDB Search 인덱스 만듭니다. 이 필드 에는 영화 이름이 텍스트 문자열로 포함됩니다.$rankFusion또는$scoreFusion를 사용하는 쿼리 실행하여plot_embedding_voyage_3_large필드 대한$vectorSearch쿼리 와title필드 대한$search쿼리 의 결과를 결합합니다.
전제 조건
시작하기 전에 전제 조건을 완료하세요.
절차
MongoDB Vector Search 및 MongoDB Search 인덱스 만들기
이 섹션에서는 sample_mflix.embedded_movies collection의 필드에 다음 인덱스를 생성하는 방법을 보여 줍니다.
해당 필드 에 대해 벡터 쿼리를 실행 위한
plot_embedding_voyage_3_large필드 에 대한 MongoDB Vector Search 인덱스 .해당 필드 에 대해 전체 텍스트 검색 실행 위한
title필드 에 대한 MongoDB Search 인덱스 .