다음을 통해 공유


VectorDistance(NoSQL 쿼리)

적용 대상: NoSQL

지정된 두 벡터 간의 유사성 점수를 반환합니다.

구문

VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)  

인수

매개 변수 설명
vector_expr_1 float32 이하의 배열입니다.
vector_expr_2 float32 이하의 배열입니다.
bool_expr ORDER BY 식에서 계산 값을 사용하는 방법을 지정하는 선택적 부울입니다. true이면 무차별 대입이 사용됩니다. 값 false 은 벡터 속성에 정의된 인덱스(있는 경우)를 사용합니다. 기본값은 false여야 합니다.
obj_expr 벡터 거리 계산에 대한 옵션을 지정하는 데 사용되는 선택적 JSON 형식 개체 리터럴입니다. 유효한 항목에는 포함 distanceFunctiondataType, 및 searchListSizeMultiplier.

선택적 매개 변수에 대해 지원되는 매개 변수 obj_expr

매개 변수 설명
distanceFunction 거리/유사성을 계산하는 데 사용되는 메트릭입니다.
dataType 벡터의 데이터 형식입니다. float32uint8, int8값입니다. 기본값은 float32여야 합니다.
searchListSizeMultiplier 벡터 검색을 수행할 때 검색 목록의 크기를 지정하는 정수입니다. 이를 늘리면 RU 비용 및 대기 시간을 희생하여 정확도가 향상될 수 있습니다. Min=1, Default=5, Max=100.

지원되는 메트릭은 다음과 같습니다.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'})

Important

항상 쿼리 문에 SELECT 절을 사용합니다TOP N. 그렇지 않으면 벡터 검색이 더 많은 결과를 반환하려고 시도하고 쿼리에 더 많은 RU 비용이 들고 필요한 것보다 대기 시간이 더 깁니다.

설명

  • 이 함수를 사용하려면 Azure Cosmos DB NoSQL Vector Search 기능을 사용하도록 설정해야 합니다.
  • 이 함수는 벡터 인덱스의 이점을 활용함
  • 선택 사항bool_expr으로 지정된 경우 false 경로에 정의된 벡터 인덱스가 사용됩니다(있는 경우). 벡터 경로에 인덱스가 정의되어 있지 않으면 이 함수는 전체 검색으로 되돌아가고 벡터 인덱스를 사용하는 경우보다 더 높은 RU 요금과 더 높은 대기 시간이 발생합니다.
  • 절에서 ORDER BY 사용되는 경우 VectorDistance 항상 사용된 유사성 메트릭에 ORDER BY 따라 가장 유사한(첫 번째)와 가장 유사한(마지막)의 순서로 결과가 정렬되므로 방향을 지정할 필요가 없습니다.
  • 결과는 유사성 점수로 표시됩니다.