knnVector 유형을 사용하여 벡터 임베딩을 인덱스할 수 있습니다. 벡터 필드는 다음 유형의 숫자 배열로 표현할 수 있습니다.
BSON
int32, knnBeta 연산자를 사용하여 쿼리할 수 있는int64또는double데이터 유형.BSON
doubledata type for querying using the$vectorSearchstage.
You can use the knnBeta operator, which is now deprecated, and the $vectorSearch stage in your aggregation pipeline to query fields indexed as knnVector.
참고
Atlas UI 에서 MongoDB Search Visual Editor 를 사용하여 knnVector 유형의 필드를 구성할 수 없습니다. 대신 MongoDB Search JSON Editor 를 사용하여 knnVector 유형의 필드를 구성합니다.
You can also use MongoDB Vector Search with local Atlas deployments that you create with the Atlas CLI. To learn more, see Create a Local Atlas Deployment.
knnVector 유형 제한 사항
문서 배열 내부의 필드 또는 객체 배열 내부의 필드( MongoDB Search embeddedDocuments 유형)를 knnVector 유형으로 인덱스 할 수 없습니다.
knnVector 유형에 대한 인덱스 정의
다음은 knnVector 유형에 대한 JSON 구문입니다. 기본값 인덱스 정의를 다음으로 변경합니다. 필드에 관한 자세한 사항은 필드 속성을 참조하십시오.
1 { 2 "mappings": { 3 "dynamic": true|false, 4 "fields": { 5 "<field-name>": { 6 "type": "knnVector", 7 "dimensions": <number-of-dimensions>, 8 "similarity": "euclidean | cosine | dotProduct" 9 } 10 } 11 } 12 }
knnVector 필드 속성 구성
knnVector 유형에는 다음과 같은 옵션이 있습니다:
옵션 | 유형 | 필요성 | 목적 |
|---|---|---|---|
| 문자열 | 필수 사항 | 이 토크나이저 유형을 식별하는 사람이 읽을 수 있는 레이블입니다. 값은 |
| int | 필수 사항 | MongoDB Search가 인덱스 및 쿼리 시점에 시행하는 벡터 차원의 수입니다. 이 값은 |
| 문자열 | 필수 사항 | 상위 K-최근접 이웃을 검색하는 데 사용하는 벡터 유사성 함수입니다. 값은 다음 중 하나일 수 있습니다:
|
knnVector 유형에 대한 예시 사용해 보기
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 }
If you load the sample data on your cluster and create the preceding MongoDB Search index for this collection, you can run $vectorSearch queries against this collection. To learn more about the sample queries that you can run, see $vectorSearch Examples.
vector 유형으로 마이그레이션
MongoDB 검색 인덱스를 벡터 유형으로 마이그레이션 하려면 벡터 필드 에 대한 인덱스 정의에서 knnVector 유형을 vector 유형으로 바꿉니다.
예시
To use the vector type for the plot_embedding field in the sample index definition for the sample_mflix.embedded_movies collection, replace the index definition with the following:
1 { 2 "mappings": { 3 "dynamic": true, 4 "fields": { 5 "plot_embedding": { 6 "type": "vector", 7 "dimensions": 1536, 8 "similarity": "euclidean" 9 } 10 } 11 } 12 }
유형 필드 에 대해 쿼리를 실행 vector 하려면 vectorSearch 연산자 대신( MongoDB 검색하다 연산자)를 사용해야 knnBeta 합니다.
참고
기존 knnBeta 연산자 쿼리는 vector 유형 인덱스에 대해 계속 실행 수 있습니다. 인덱스 마이그레이션한 후 knnBeta 연산자 쿼리를 즉시 vectorSearch (MongoDB 검색하다 연산자)로 마이그레이션하는 것이 좋습니다.