Teilen über


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, int8uint8 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 -∞ () (-infam wenigsten ähnlich) mit (+inf) (+∞) (am ähnlichsten) hat.
  • euclidean, die Werte von 0 (am ähnlichsten) bis +∞ () (+infam 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 optionaler bool_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 einer ORDER BY Klausel verwendet wird, muss keine Richtung angegeben ORDER 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.