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 comebool_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 unaORDER BY
clausola, non è possibile specificare alcuna direzione perORDER 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 esempioASC
oDESC
, si verifica un errore. - Il risultato viene espresso come un punteggio di somiglianza.
Contenuto correlato
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per