Condividi tramite


VectorDistance (query NoSQL)

SI APPLICA A: NoSQL

Restituisce il punteggio di somiglianza tra due vettori specificati.

Nota

Per altre informazioni, vedere Dati località geospaziale e GeoJSON.

Sintassi

VECTORDISTANCE(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])  

Argomenti

Descrizione
spatial_expr_1 Una matrice di float32 o più piccola.
spatial_expr_2 Una matrice di float32 o più piccola.
bool_expr Un valore booleano che specifica la modalità di utilizzo del valore calcolato in un'espressione ORDER BY. Se true, verrà usata la forza bruta. Un valore di false sfrutta qualsiasi indice definito nella proprietà vector, se esistente. Il valore predefinito è false.
obj_expr Un valore letterale di oggetto formattato JSON usato per specificare le opzioni per il calcolo della distanza del vettore. Gli elementi validi includono distanceFunction e dataType.
distanceFunction Metrica usata per calcolare distanza/somiglianza.
dataType Il tipo di dati dei vettori. Valori float32, float16, int8, uint8. Il valore predefinito è float32.

Le metriche supportate per distanceFunction sono:

  • coseno, che ha valori compresi tra -1 (meno simile) e +1 (più simile).
  • dotproduct, che ha valori da -inf (meno simile) a +inf (più simile).
  • euclideo, con valori compresi tra 0 (più simili) e +inf (meno simili).

Tipi restituiti

Restituisce un'espressione numerica che enumera il punteggio di somiglianza tra due espressioni.

Esempi

Con argomenti obbligatori

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

Con argomenti facoltativi

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

Osservazioni:

  • Questa funzione richiede l'iscrizione alla funzionalità di anteprima della ricerca vettoriale di Azure Cosmos DB NoSQL.
  • Questa funzione sfrutta un indice vettoriale
  • se false viene fornito come bool_expr facoltativo, viene usato l'indice vettoriale definito nel percorso, se presente. Se non viene definito alcun indice nel percorso vettoriale, viene ripristinato l'analisi completa e vengono addebitati costi ur superiori e una latenza superiore rispetto all'uso di un indice vettoriale.
  • Quando VectorDistance viene usato in una ORDER BY clausola, non è possibile specificare alcuna direzione per ORDER BY, in quanto i risultati vengono sempre ordinati in ordine più simile (primo) al meno simile (ultimo) in base alla metrica di somiglianza usata. Se viene specificata una direzione, ad esempio ASC o DESC , si verifica un errore.
  • Il risultato viene espresso come un punteggio di somiglianza.