Atlas 클러스터의 데이터에 대해 시맨틱 검색을 수행하는 방법
이 튜토리얼에서는 Atlas 클러스터의 sample_mflix.embedded_movies
컬렉션에 있는 plot_embeddings
필드에 있는 벡터에 대해 ANN 검색을 수행하는 방법을 설명합니다. 다음 단계를 통해 이를 시연합니다.
sample_mflix.embedded_movies
컬렉션의plot_embeddings
이라는 숫자 필드에 Atlas Vector Search 인덱스를 만듭니다.sample_mflix.embedded_movies
컬렉션의plot_embeddings
필드에 대해 Atlas Vector Search 쿼리를 실행합니다.
전제 조건
이 튜토리얼을 완료하려면 다음이 필요합니다.
Atlas cluster에 설치된 MongoDB 버전 6.0.11 또는 v7.0.2 이상( RC 포함).
Atlas cluster에 로드된 샘플 데이터
Atlas Cluster에서 쿼리를 실행하기 위한 다음 애플리케이션 중 하나가 있어야 합니다.
Atlas CLI로 생성한 로컬 Atlas 배포와 함께 Atlas Vector Search를 사용할 수도 있습니다. 자세히 알아보려면 로컬 Atlas 배포 만들기를 참조하세요.
Atlas Vector Search 인덱스 만들기
이 섹션에서는 sample_mflix.embedded_movies
컬렉션의 plot_embeddings
필드에 대해 벡터 쿼리를 실행하기 위해 해당 필드에 Atlas Vector Search 인덱스를 만드는 방법을 보여 줍니다.
필요한 액세스 권한
Atlas Vector Search 인덱스를 만들려면 프로젝트에 대한 Project Data Access Admin
이상의 액세스 권한이 있어야 합니다.
절차
Atlas Vector Search 인덱스를 정의합니다.
기본 정의를 다음 인덱스 정의로 바꿉니다.
이 인덱스 정의는 vectorSearch 유형의 인덱스에서 다음 필드를 인덱싱하도록 지정합니다.
plot_embedding
필드를 벡터 유형으로 지정합니다.plot_embedding
필드에는 OpenAI의text-embedding-ada-002
임베딩 모델을 사용하여 생성된 임베딩이 포함되어 있습니다. 인덱스 정의는1536
벡터 차원을 지정하고euclidean
를 사용하여 유사성을 측정합니다.genres
필드의 문자열 값을 기준으로 데이터를 사전 필터링하기 위한 필터 유형으로 필드를 지정합니다.year
필드의 숫자 값을 기준으로 데이터를 사전 필터링하기 위한 필터 유형으로 필드를 지정합니다.
1 { 2 "fields": [ 3 { 4 "type": "vector", 5 "path": "plot_embedding", 6 "numDimensions": 1536, 7 "similarity": "euclidean" 8 }, 9 { 10 "type": "filter", 11 "path": "genres" 12 }, 13 { 14 "type": "filter", 15 "path": "year" 16 } 17 ] 18 }
$vectorSearch
집계 파이프라인 단계를 사용하여 쿼리 실행
➤ 언어 선택 드롭다운 메뉴를 사용하여 이 섹션의 예시 쿼리를 실행하는 데 사용할 클라이언트를 선택합니다.
개요
이 섹션에서는 $vectorSearch
단계를 사용하여 sample_mflix.embedded_movies
컬렉션에서 인덱싱된 벡터 데이터를 쿼리하는 방법을 보여 줍니다. 또한 이러한 샘플 쿼리는 시맨틱 검색을 수행하는 데이터를 사전 필터링하기 위해 쿼리에서 사용할 수 있는 다양한 비교 쿼리 및 집계 파이프라인 연산자를 보여 줍니다.