다음을 통해 공유


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 형식의 개체 리터럴입니다. 유효한 항목에는 distanceFunctiondataType이 포함됩니다.
distanceFunction 거리/유사성을 계산하는 데 사용되는 메트릭입니다.
dataType 벡터의 데이터 형식입니다. float32uint8, 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 따라 가장 유사한(첫 번째)와 가장 유사한(마지막)의 순서로 결과가 정렬되므로 방향을 지정할 필요가 없습니다.
  • 결과는 유사성 점수로 표시됩니다.