VectorDistance (consulta NoSQL)
SE APLICA A: NoSQL
Devuelve la puntuación de similitud entre dos vectores especificados.
Sintaxis
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
Argumentos
Descripción | |
---|---|
spatial_expr_1 |
Una matriz de float32 o menor. |
spatial_expr_2 |
Una matriz de float32 o menor. |
bool_expr |
Un valor booleano 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 |
Un literal de objeto con formato JSON usado para especificar opciones para el cálculo de la distancia vectorial. Los elementos válidos incluyen distanceFunction y dataType . |
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 . |
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',})
Comentarios
- Esta función requiere la inscripción en la característica en vista previa Vector de búsqueda de Azure Cosmos DB for NoSQL.
- Esta función se beneficia de un índice vectorial.
- Si
false
se da comobool_expr
opcional, se usa el índice vectorial 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