VectorDistance (query NoSQL)
SI APPLICA A: NoSQL
Restituisce il punteggio di somiglianza tra due vettori specificati.
Sintassi
VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Argomenti
Parametro | Descrizione |
---|---|
vector_expr_1 |
Una matrice di float32 o più piccola. |
vector_expr_2 |
Una matrice di float32 o più piccola. |
bool_expr |
Valore booleano facoltativo 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 |
Valore letterale oggetto formattato JSON facoltativo usato per specificare le opzioni per il calcolo della distanza del vettore. Gli elementi validi includono distanceFunction e dataType e searchListSizeMultiplier . |
Parametri supportati per l'opzione facoltativa obj_expr
Parametro | Descrizione |
---|---|
distanceFunction |
Metrica usata per calcolare distanza/somiglianza. |
dataType |
Il tipo di dati dei vettori. float32 , int8 , uint8 valori . Il valore predefinito è float32 . |
searchListSizeMultiplier |
Intero che specifica le dimensioni dell'elenco di ricerca durante l'esecuzione di una ricerca vettoriale. L'aumento di questo può migliorare l'accuratezza a scapito del costo e della latenza delle UR. Min=1, Default=5, Max=100. |
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'})
Importante
Usare sempre una TOP N
clausola nell'istruzione SELECT
di una query. In caso contrario, la ricerca vettoriale tenterà di restituire molti più risultati e la query costerà più UR e avrà una latenza maggiore del necessario.
Osservazioni:
- Questa funzione richiede l'abilitazione della funzionalità Ricerca vettoriale NoSQL di Azure Cosmos DB.
- Questa funzione sfrutta un indice vettoriale
- Se
false
viene specificato come facoltativobool_expr
, 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.