Condividi tramite


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 tra 0 (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 come bool_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 una ORDER 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.