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 de 0 (mais semelhantes) a +∞ (+infmenos 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 opcional bool_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 uma ORDER BY cláusula, nenhuma direção precisa ser especificada para o ORDER 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.