Freigeben über


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, int8uint8 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 -∞ () (-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'})

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 optional bool_exprangegeben 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 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.