VectorDistance (query NoSQL)
SI APPLICA A: NoSQL
Restituisce il punteggio di somiglianza tra due vettori specificati.
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 usa 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. float32 , int8 , uint8 valori . Il valore predefinito è float32 . |
Le metriche supportate per distanceFunction
sono:
cosine
, che ha valori da-1
(meno simili) a+1
(più simili).dotproduct
, che ha valori da-∞
(-inf
) (meno simile) a+∞
(+inf
) (più simile).euclidean
, che ha valori compresi tra0
(più simili) a+∞
(+inf
) (meno simili).
Tipi restituiti
Restituisce un'espressione numerica che enumera il punteggio di somiglianza tra due espressioni.
Esempi
Questo primo esempio mostra una query di ricerca dei primi 10 vettori con solo gli argomenti obbligatori. Viene proiettata una proprietà, insieme al punteggio restituito da VectorDistance
. Si usa quindi una ORDER BY
clausola per ordinare VectorDistance
i punteggi in ordine dal più simile al minimo.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
Questo esempio successivo include anche argomenti facoltativi per 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',})
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 comebool_expr
facoltativo, viene usato l'indice vettoriale definito nel percorso, se presente. Se non viene definito alcun indice nel percorso vettoriale, questa funzione ripristina l'analisi completa e comporta addebiti ur più elevati e una latenza superiore rispetto all'uso di un indice vettoriale. - Quando
VectorDistance
viene usato in unaORDER BY
clausola, non è necessario specificare alcuna direzione per perchéORDER BY
i risultati vengono sempre ordinati in ordine di più simile (primo) a meno simile (ultimo) in base alla metrica di somiglianza usata. - Il risultato viene espresso come un punteggio di somiglianza.