VectorDistance (NoSQL-Abfrage)
GILT FÜR: NoSQL
Gibt die Ähnlichkeitsbewertung zwischen zwei angegebenen Vektoren zurück.
Syntax
VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Argumente
Parameter | Beschreibung |
---|---|
vector_expr_1 |
Ein Array von float32 oder kleiner. |
vector_expr_2 |
Ein Array von float32 oder kleiner. |
bool_expr |
Ein optionaler 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 optionales JSON-formatiertes Objektliteral, das zum Angeben von Optionen für die Berechnung des Vektorabstands verwendet wird. Gültige Elemente umfassen distanceFunction und dataType , und searchListSizeMultiplier . |
Unterstützte Parameter für die optionale obj_expr
Parameter | Beschreibung |
---|---|
distanceFunction |
Die Metrik, die zum Berechnen der Entfernung/Ähnlichkeit verwendet wird. |
dataType |
Der Datentyp der Vektoren. float32 , int8 uint8 Werte. Der Standardwert ist float32 . |
searchListSizeMultiplier |
Eine ganze Zahl, die die Größe der Suchliste beim Durchführen einer Vektorsuche angibt. Die Erhöhung kann die Genauigkeit auf Kosten von RU-Kosten und Latenz erhöhen. Min=1, Default=5, Max=100. |
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'})
Wichtig
Verwenden Sie immer eine TOP N
-Klausel in der SELECT
-Anweisung einer Abfrage. Andernfalls versucht die Vektorsuche, viele weitere Ergebnisse zurückzugeben, und die Abfrage verbraucht mehr RUs und hat eine höhere Latenz als erforderlich.
Hinweise
- Diese Funktion erfordert das Aktivieren des Azure Cosmos DB NoSQL-Vektorsuchfeatures.
- Diese Funktion profitiert von einem Vektorindex
- Wenn
false
er als optionalbool_expr
angegeben wird, wird der auf dem 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.