VectorDistance(NoSQL 쿼리)
적용 대상: NoSQL
지정된 두 벡터 간의 유사성 점수를 반환합니다.
구문
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
인수
설명 | |
---|---|
spatial_expr_1 |
float32 이하의 배열입니다. |
spatial_expr_2 |
float32 이하의 배열입니다. |
bool_expr |
ORDER BY 식에서 계산된 값을 사용하는 방법을 지정하는 부울입니다. true 이면 무차별 대입이 사용됩니다. 값 false 은 벡터 속성에 정의된 인덱스(있는 경우)를 사용합니다. 기본값은 false 여야 합니다. |
obj_expr |
벡터 거리 계산에 대한 옵션을 지정하는 데 사용하는 JSON 형식의 개체 리터럴입니다. 유효한 항목에는 distanceFunction 및 dataType 이 포함됩니다. |
distanceFunction |
거리/유사성을 계산하는 데 사용되는 메트릭입니다. |
dataType |
벡터의 데이터 형식입니다. float32 uint8 , int8 값입니다. 기본값은 float32 여야 합니다. |
지원되는 메트릭은 다음과 같습니다.distanceFunction
cosine
- (가장 유사하지 않은) 값-1
이 가장 유사합니다+1
.dotproduct
()에서-∞
()와 (-inf
가장 유사하지 않은) 값을 가집니다+∞
+inf
.euclidean
- (가장 유사)에서0
(+inf
최소 유사) 값이+∞
있습니다.
반환 형식
두 식 간의 유사성 점수를 열거하는 숫자 식을 반환합니다.
예제
이 첫 번째 예제에서는 필수 인수만 있는 상위 10개 벡터 검색 쿼리를 보여줍니다. 에서 반환한 점수와 함께 하나의 속성이 프로젝션됩니다 VectorDistance
. 그런 다음, 가장 유사한 것부터 최소까지 순서대로 점수를 정렬 VectorDistance
하는 절을 사용자 ORDER BY
지정합니다.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
다음 예제에는 에 대한 선택적 인수도 포함됩니다. VectorDistance
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32',})
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32',})
설명
- 이 함수를 사용하려면 Azure Cosmos DB NoSQL 벡터 검색 미리 보기 기능에 등록해야 합니다.
- 이 함수는 벡터 인덱스의 이점을 활용함
false
가 선택적bool_expr
으로 지정되면 경로에 정의된 벡터 인덱스(있는 경우)가 사용됩니다. 벡터 경로에 인덱스가 정의되어 있지 않으면 이 함수는 전체 검색으로 되돌아가고 벡터 인덱스를 사용하는 경우보다 더 높은 RU 요금과 더 높은 대기 시간이 발생합니다.- 절에서
ORDER BY
사용되는 경우VectorDistance
항상 사용된 유사성 메트릭에ORDER BY
따라 가장 유사한(첫 번째)와 가장 유사한(마지막)의 순서로 결과가 정렬되므로 방향을 지정할 필요가 없습니다. - 결과는 유사성 점수로 표시됩니다.