VectorDistance (consulta NoSQL)
SE APLICA A: NoSQL
Devuelve la puntuación de similitud entre dos vectores especificados.
Sintaxis
VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Argumentos
Parámetro | Descripción |
---|---|
vector_expr_1 |
Una matriz de float32 o menor. |
vector_expr_2 |
Una matriz de float32 o menor. |
bool_expr |
Valor booleano opcional que especifica cómo se usa el valor calculado en una expresión ORDER BY. Si es true , se usa por fuerza bruta. Un valor de false usa cualquier índice definido en la propiedad vectorial, si existe. El valor predeterminado es false . |
obj_expr |
Literal de objeto con formato JSON opcional que se usa para especificar opciones para el cálculo de distancia vectorial. Los elementos válidos incluyen distanceFunction y dataType y searchListSizeMultiplier . |
Parámetros admitidos para el opcional obj_expr
Parámetro | Descripción |
---|---|
distanceFunction |
Métrica que se usa para calcular la distancia o similitud. |
dataType |
El tipo de datos de los vectores. float32 , int8 , uint8 valores. El valor predeterminado es float32 . |
searchListSizeMultiplier |
Entero que especifica el tamaño de la lista de búsqueda al realizar una búsqueda vectorial. Aumentar esto puede mejorar la precisión a costa del costo y la latencia de RU. Min=1, Default=5, Max=100. |
Las métricas admitidas para distanceFunction
son:
cosine
, que tiene valores de-1
(menos similares) a+1
(más similares).dotproduct
, que tiene valores de-∞
(-inf
) (menos similares) a+∞
() (+inf
más similares).euclidean
, que tiene valores de0
(más similares) a+∞
() (+inf
menos similares).
Tipos de valores devueltos
Devuelve una expresión numérica que enumera la puntuación de similitud entre dos expresiones.
Ejemplos
En este primer ejemplo se muestra una consulta de búsqueda vectorial superior de 10 con solo los argumentos necesarios. Se proyecta una propiedad, junto con la puntuación devuelta por VectorDistance
. A continuación, se usa una ORDER BY
cláusula para ordenar VectorDistance
las puntuaciones en orden de la mayoría similar a la mínima.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
En este ejemplo siguiente también se incluyen argumentos opcionales 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'})
Importante
Use siempre una cláusula TOP N
en la instrucción SELECT
de una consulta. De lo contrario, los vectores de búsqueda intentará devolver muchos más resultados y la consulta costará más RU y tendrá una mayor latencia de lo necesario.
Comentarios
- Esta función requiere habilitar la característica NoSQL Vector Search de Azure Cosmos DB.
- Esta función se beneficia de un índice vectorial.
- Si
false
se da como opcionalbool_expr
, se usa el índice de vector definido en la ruta de acceso, si existe uno. Si no se define ningún índice en la ruta de acceso vectorial, esta función se revierte al examen completo e incurre en cargos de RU más altos y mayor latencia que si se usa un índice vectorial. - Cuando
VectorDistance
se usa en unaORDER BY
cláusula , no es necesario especificar ninguna dirección para , yaORDER BY
que los resultados siempre se ordenan en orden de la mayoría de los similares (primero) a los menos similares (último) en función de la métrica de similitud utilizada. - El resultado se expresa como una puntuación de similitud.
Contenido relacionado
- System functions (Funciones del sistema)
- Configure Azure Cosmos DB for NoSQL para el vector de búsqueda.
- índice vectorial