VectorDistance (consulta NoSQL)
APLICA-SE A: NoSQL
Devolve a pontuação de semelhança entre dois vetores especificados.
Sintaxe
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
Argumentos
Description | |
---|---|
spatial_expr_1 |
Uma matriz de float32 ou menor. |
spatial_expr_2 |
Uma matriz de float32 ou menor. |
bool_expr |
Um booleano especificando como o valor calculado é usado em uma expressão ORDER BY. Se true , então a força bruta é usada. Um valor de false usa qualquer índice definido na propriedade vetor, se existir. O valor predefinido é false . |
obj_expr |
Um literal de objeto formatado JSON usado para especificar opções para o cálculo de distância vetorial. Os itens válidos incluem distanceFunction e dataType . |
distanceFunction |
A métrica usada para calcular a distância/similaridade. |
dataType |
O tipo de dados dos vetores. float32 , int8 , uint8 valores. O valor predefinido é float32 . |
As métricas suportadas são distanceFunction
:
cosine
, que tem valores de-1
(menos semelhantes) a+1
(mais semelhantes).dotproduct
, que tem valores de-∞
(-inf
) (menos semelhante) a+∞
(+inf
) (mais semelhante).euclidean
, que tem valores de0
(mais semelhantes) a+∞
(+inf
menos semelhantes).
Tipos de devolução
Retorna uma expressão numérica que enumera a pontuação de semelhança entre duas expressões.
Exemplos
Este primeiro exemplo mostra uma consulta de pesquisa vetorial top 10 com apenas os argumentos necessários. Uma propriedade é projetada, juntamente com a pontuação retornada por VectorDistance
. Em seguida, usamos uma ORDER BY
cláusula para classificar VectorDistance
as pontuações em ordem da mais semelhante para a menor.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
Este próximo exemplo também inclui argumentos opcionais para 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',})
Observações
- Esta função requer inscrição no recurso de visualização do Azure Cosmos DB NoSQL Vetor Search.
- Esta função beneficia de um índice vetorial
- se
false
é dado como o opcionalbool_expr
, então o índice vetorial definido no caminho é usado, se existir. Se nenhum índice for definido no caminho do vetor, essa função será revertida para verificação completa e incorrerá em cobranças de RU mais altas e latência mais alta do que se estiver usando um índice vetorial. - Quando
VectorDistance
é usado em umaORDER BY
cláusula, nenhuma direção precisa ser especificada para oORDER BY
como os resultados são sempre classificados em ordem de mais semelhante (primeiro) para menos semelhante (último) com base na métrica de similaridade usada. - O resultado é expresso como um escore de similaridade.