VectorDistance (NoSQL-fråga)
GÄLLER FÖR: NoSQL
Returnerar likhetspoängen mellan två angivna vektorer.
Syntax
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
Argument
beskrivning | |
---|---|
spatial_expr_1 |
En matris med float32 eller mindre. |
spatial_expr_2 |
En matris med float32 eller mindre. |
bool_expr |
Ett booleskt värde som anger hur det beräknade värdet används i ett ORDER BY-uttryck. Om true används brute force. Ett värde false för använder ett index som definierats för vektoregenskapen, om det finns. Standardvärdet är false . |
obj_expr |
En JSON-formaterad objektliteral som används för att ange alternativ för vektoravståndsberäkningen. Giltiga objekt inkluderar distanceFunction och dataType . |
distanceFunction |
Måttet som används för att beräkna avstånd/likhet. |
dataType |
Datatypen för vektorerna. float32 , int8 , uint8 värden. Standardvärdet är float32 . |
Mått som stöds för distanceFunction
är:
cosine
, som har värden från-1
(minst lika) till+1
(mest liknande).dotproduct
, som har värden från-∞
(-inf
) (minst lika) till+∞
(+inf
) (mest liknande).euclidean
, som har värden från0
(mest liknande) till+∞
(+inf
) (minst lika).
Returtyper
Returnerar ett numeriskt uttryck som räknar upp likhetspoängen mellan två uttryck.
Exempel
Det första exemplet innehåller endast de argument som krävs.
SELECT VALUE {
name: s.name,
similarityScore: VectorDistance(s.vector1, s.vector2)
}
FROM
source s
ORDER BY
VectorDistance(s.vector1, s.vector2)
I nästa exempel finns även valfria argument.
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)
Kommentarer
- Den här funktionen kräver registrering i förhandsversionen av Azure Cosmos DB NoSQL Vector Search.
- Den här funktionen drar nytta av ett vektorindex
- om
false
anges som valfrittbool_expr
används det vektorindex som definierats på sökvägen, om det finns något. Om inget index har definierats på vektorsökvägen återgår den här funktionen till fullständig genomsökning och medför högre RU-avgifter och högre svarstid än om du använder ett vektorindex. - När
VectorDistance
används i enORDER BY
sats behöver ingen riktning anges förORDER BY
eftersom resultaten alltid sorteras i ordning efter de flesta liknande (först) minst lika (sista) baserat på likhetsmåttet som används. - Resultatet uttrycks som en likhetspoäng.