문서 메뉴
문서 홈
/
MongoDB Atlas
/ /

Atlas 클러스터의 데이터에 대해 시맨틱 검색을 수행하는 방법

이 페이지의 내용

  • 전제 조건
  • Atlas Vector Search 인덱스 만들기
  • 필요한 액세스 권한
  • 절차
  • $vectorSearch 집계 파이프라인 단계를 사용하여 쿼리 실행
  • 개요
  • 절차

이 튜토리얼에서는 Atlas 클러스터의 sample_mflix.embedded_movies 컬렉션에 있는 plot_embeddings 필드에 있는 벡터에 대해 ANN 검색을 수행하는 방법을 설명합니다. 다음 단계를 통해 이를 시연합니다.

  1. sample_mflix.embedded_movies 컬렉션의 plot_embeddings 이라는 숫자 필드에 Atlas Vector Search 인덱스를 만듭니다.

  2. sample_mflix.embedded_movies 컬렉션의 plot_embeddings 필드에 대해 Atlas Vector Search 쿼리를 실행합니다.

이 튜토리얼을 완료하려면 다음이 필요합니다.

  • Atlas cluster에 설치된 MongoDB 버전 6.0.11 또는 v7.0.2 이상( RC 포함).

  • Atlas cluster에 로드된 샘플 데이터

  • Atlas Cluster에서 쿼리를 실행하기 위한 다음 애플리케이션 중 하나가 있어야 합니다.

    • mongosh

    • Java

    • MongoDB 노드 드라이버

    • Pymongo

    Atlas CLI로 생성한 로컬 Atlas 배포와 함께 Atlas Vector Search를 사용할 수도 있습니다. 자세히 알아보려면 로컬 Atlas 배포 만들기를 참조하세요.

이 섹션에서는 sample_mflix.embedded_movies 컬렉션의 plot_embeddings 필드에 대해 벡터 쿼리를 실행하기 위해 해당 필드에 Atlas Vector Search 인덱스를 만드는 방법을 보여 줍니다.

Atlas Vector Search 인덱스를 만들려면 프로젝트에 대한 Project Data Access Admin 이상의 액세스 권한이 있어야 합니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Clusters 페이지가 아직 표시되지 않은 경우 사이드바에서 Database를 클릭합니다.

2
  1. 클러스터 이름을 클릭합니다.

  2. Atlas Search 탭을 클릭합니다.

3
  1. Create Search Index를 클릭합니다.

  2. Atlas Vector Search 아래에서 JSON Editor 을 선택한 다음 Next 를 클릭합니다.

  3. Database and Collection 섹션에서 sample_mflix 데이터베이스를 찾고 embedded_movies 컬렉션을 선택합니다.

  4. Index Name 필드에 vector-search-tutorial를 입력합니다.

  5. 기본 정의를 다음 인덱스 정의로 바꾼 다음 Next 을 클릭합니다.

4
  1. 기본 정의를 다음 인덱스 정의로 바꿉니다.

    이 인덱스 정의는 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}
5

인덱스가 작성 중임을 보여주는 모달 창이 표시됩니다.

6

인덱스를 빌드하는 데 약 1분 정도 걸립니다. 빌드되는 동안 Status 열은 Initial Sync 을 읽습니다. 빌드가 완료되면 Status 열에 Active 이 표시됩니다.


언어 선택 드롭다운 메뉴를 사용하여 이 섹션의 예시 쿼리를 실행하는 데 사용할 클라이언트를 선택합니다.


이 섹션에서는 $vectorSearch 단계를 사용하여 sample_mflix.embedded_movies 컬렉션에서 인덱싱된 벡터 데이터를 쿼리하는 방법을 보여 줍니다. 또한 이러한 샘플 쿼리는 시맨틱 검색을 수행하는 데이터를 사전 필터링하기 위해 쿼리에서 사용할 수 있는 다양한 비교 쿼리집계 파이프라인 연산자를 보여 줍니다.

← Atlas Vector Search 튜토리얼