Compartir a través de


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 +∞ () (+infmás similares).
  • euclidean, que tiene valores de 0 (más similares) a +∞ () (+infmenos 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 como bool_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 una ORDER BY cláusula , no es necesario especificar ninguna dirección para , ya ORDER 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.