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 enthält nur die erforderlichen Argumente.
SELECT VALUE {
name: s.name,
similarityScore: VectorDistance(s.vector1, s.vector2)
}
FROM
source s
ORDER BY
VectorDistance(s.vector1, s.vector2)
Dieses nächste Beispiel enthält auch optionale Argumente.
SELECT VALUE {
name: s.name,
similarityScore: VectorDistance(s.vector1, s.vector2, true, {'distanceFunction':'cosine', 'dataType':'float32',})
}
FROM
source s
ORDER BY
VectorDistance(s.vector1, s.vector2)
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.