벡터 검색을 위해 벡터 임베딩을 인덱스하는 방법
이 페이지의 내용
knnVector
유형을 사용하여 벡터 임베딩을 인덱싱할 수 있습니다. 벡터 필드는 다음 유형의 숫자 배열로 표현할 수 있습니다.
BSON
int32
, knnBeta 연산자를 사용하여 쿼리할 수 있는int64
또는double
데이터 유형.BSON
double
$vectorSearch
단계를 사용하여 쿼리하기 위한 데이터 형식입니다.
이제 더 이상 사용되지 않는 knnBeta 연산자와 집계 파이프라인의 $vectorSearch
단계를 사용하여 knnVector
로 인덱싱된 필드를 쿼리할 수 있습니다.
참고
Atlas UI에서 Atlas Search Visual Editor를 사용하여 knnVector
유형의 필드를 구성할 수 없습니다. 대신 Atlas Search JSON Editor를 사용하여 knnVector
유형의 필드를 구성하세요.
Atlas CLI를 사용하여 만든 로컬 Atlas 배포와 함께 Atlas Vector Search를 사용할 수도 있습니다. 자세한 내용은 로컬 Atlas 배포 만들기를 참조하세요.
knnVector
0} 유형 제한 검토
문서 배열 내부의 필드 또는 객체 배열 내부의 필드(Atlas Search embeddedDocuments 유형)를 knnVector
유형으로 인덱싱할 수 없습니다.
0} 유형에 대한 knnVector
인덱스 정의
다음은 knnVector
유형에 대한 JSON 구문입니다. 기본 인덱스 정의를 다음으로 바꿉니다. 필드에 대해 자세히 알아보려면 필드 속성을 참조하세요.
1 { 2 "mappings": { 3 "name": "<index-name>", 4 "dynamic": true|false, 5 "fields": { 6 "<field-name>": { 7 "type": "knnVector", 8 "dimensions": <number-of-dimensions>, 9 "similarity": "euclidean | cosine | dotProduct" 10 } 11 } 12 } 13 }
0}knnVector
필드 속성 구성
knnVector
유형에는 다음과 같은 옵션이 있습니다:
옵션 | 유형 | 필요성 | 목적 |
---|---|---|---|
type | 문자열 | 필수 사항 | 이 토크나이저 유형을 식별하는 사람이 읽을 수 있는 레이블입니다. 값은 knnVector 이어야 합니다. |
dimensions | int | 필수 사항 | 인덱스 및 쿼리 시점에 Atlas Search가 적용하는 벡터 차원의 수입니다. 이 값은 4096 보다 클 수 없습니다. |
similarity | 문자열 | 필수 사항 | 상위 K-최근접 이웃을 검색하는 데 사용하는 벡터 유사성 함수입니다. 값은 다음 중 하나일 수 있습니다:
|
유형<a class=\" \" href=\" \" title=\" \"><svg xmlns=\" \" width=\" \" height=\" \" fill=\" \" viewbox=\" \"knnVector
class=\" \" role=\" \" aria-label=\" \"><path fill=\" \" d=\" \"> <path fill=\" \" d=\" \"> 에 대한 예시를 사용해 보세요.
sample_mflix.embedded_movies
컬렉션에 대한 다음 인덱스 정의는 컬렉션에서 동적으로 인덱싱할 수 있는 모든 필드를 동적으로 인덱싱하고 plot_embedding
필드를 knnVector
유형으로 정적으로 인덱싱합니다. plot_embedding
필드에는 OpenAI의 text-embedding-ada-002
임베딩 모델을 사용하여 생성된 임베딩이 포함되어 있습니다. 인덱스 정의는 1536
벡터 차원을 지정하고 euclidean
을 사용하여 유사성을 측정합니다.
1 { 2 "mappings": { 3 "dynamic": true, 4 "fields": { 5 "plot_embedding": { 6 "type": "knnVector", 7 "dimensions": 1536, 8 "similarity": "euclidean" 9 } 10 } 11 } 12 }
클러스터에 샘플 데이터를 로드하고 이 컬렉션에 대한 이전 Atlas Search 인덱스를 만들면 이 컬렉션에 대해 $vectorSearch
쿼리를 실행할 수 있습니다. 실행할 수 있는 샘플 쿼리에 대해 자세히 알아보려면 $vectorSearch 예시를 참조하세요.