Compartir a través de


VectorDistance (consulta NoSQL)

SE APLICA A: NoSQL

Devuelve la puntuación de similitud entre dos vectores especificados.

Nota:

Para obtener más información, consulte Datos de ubicación geoespaciales y GeoJSON.

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 aprovecha 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. Valores float32, float16, int8 y uint8. El valor predeterminado es float32.

Las métricas admitidas para distanceFunction son:

  • coseno, 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).
  • euclideano, que tiene valores de 0 (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

Con argumentos necesarios

SELECT c.name, VectorDistance(c.vector1, c.vector2) AS SimilarityScore
FROM c
ORDER BY VectorDistance(c.vector1, c.vector2)

Con argumentos opcionales

SELECT c.name, VectorDistance(c.vector1, c.vector2, true, {'distanceFunction':'cosine', 'dataType':'float32',}) AS SimilarityScore
FROM c
ORDER BY VectorDistance(c.vector1, c.vector2)

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, se revierte al examen completo e incurre en cargos de RU más altos y una latencia mayor que si se usa un índice vectorial.
  • Cuando VectorDistance se usa en una ORDER BY cláusula , no se puede especificar ninguna dirección para , ORDER BYya 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. Si se especifica una dirección como ASC o DESC , se produce un error.
  • El resultado se expresa como una puntuación de similitud.