VectorDistance (NoSQL-Abfrage)
GILT FÜR: NoSQL
Gibt die Ähnlichkeitsbewertung zwischen zwei angegebenen Vektoren zurück.
Syntax
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
Argumente
Beschreibung | |
---|---|
spatial_expr_1 |
Ein Array von float32 oder kleiner. |
spatial_expr_2 |
Ein Array von float32 oder kleiner. |
bool_expr |
Ein boolescher Wert, der angibt, wie der berechnete Wert in einem ORDER BY-Ausdruck verwendet wird. Bei true wird brute force verwendet. Ein Wert, der false einen beliebigen Index verwendet, der für die Vektoreigenschaft definiert ist, sofern vorhanden. Der Standardwert ist false . |
obj_expr |
Ein JSON-formatiertes Objektliteral, das zum Angeben von Optionen für die Berechnung des Vektorabstands verwendet wird. Gültige Elemente enthalten distanceFunction und dataType . |
distanceFunction |
Die Metrik, die zum Berechnen der Entfernung/Ähnlichkeit verwendet wird. |
dataType |
Der Datentyp der Vektoren. float32 , int8 uint8 Werte. Der Standardwert ist float32 . |
Unterstützte Metriken für distanceFunction
:
cosine
, das Werte von-1
(am wenigsten ähnlich) bis+1
(am ähnlichsten) aufweist.dotproduct
, das Werte von-∞
() (-inf
am wenigsten ähnlich) mit (+inf
) (+∞
) (am ähnlichsten) hat.euclidean
, die Werte von0
(am ähnlichsten) bis+∞
() (+inf
am wenigsten ähnlich) enthält.
Rückgabetypen
Gibt einen numerischen Ausdruck zurück, der die Ähnlichkeitsbewertung zwischen zwei Ausdrücken aufzählt.
Beispiele
Dieses erste Beispiel zeigt eine top 10 Vektorsuchabfrage mit nur den erforderlichen Argumenten. Eine Eigenschaft wird zusammen mit der von VectorDistance
. Anschließend verwenden wir eine ORDER BY
Klausel zum Sortieren VectorDistance
von Bewertungen in der Reihenfolge, die am wenigsten ähnlich ist.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
In diesem nächsten Beispiel werden auch optionale Argumente für 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',})
Hinweise
- Für diese Funktion ist die Registrierung in Previewfunktion der Azure Cosmos DB NoSQL-Vektorsuche erforderlich.
- Diese Funktion profitiert von einem Vektorindex
- Wenn
false
als optionalerbool_expr
angegeben wird, wird der für den Pfad definierte Vektorindex verwendet, sofern vorhanden. Wenn kein Index für den Vektorpfad definiert ist, wird diese Funktion auf den vollständigen Scan zurückgesetzt und verursacht höhere RU-Gebühren und eine höhere Latenz als bei Verwendung eines Vektorindexes. - Wenn
VectorDistance
sie in einerORDER BY
Klausel verwendet wird, muss keine Richtung angegebenORDER BY
werden, da die Ergebnisse immer in der Reihenfolge der am wenigsten ähnlichen (ersten) ähnlichen (letzten) sortiert werden, basierend auf der verwendeten Ähnlichkeitsmetrik. - Das Ergebnis wird als Ähnlichkeitsbewertung ausgedrückt.