VectorDistance (NoSQL-lekérdezés)
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Két megadott vektor közötti hasonlósági pontszámot adja vissza.
Syntax
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
Argumentumok
Leírás | |
---|---|
spatial_expr_1 |
Egy vagy kisebb tömb float32 . |
spatial_expr_2 |
Egy vagy kisebb tömb float32 . |
bool_expr |
Logikai érték, amely megadja, hogyan használja a számított értéket egy ORDER BY kifejezésben. Ha true , akkor találgatásos erőt használ. Egy érték false a vektortulajdonságon definiált indexeket használja, ha létezik. Az alapértelmezett érték false . |
obj_expr |
Egy JSON formátumú objektumkonstans, amely a vektorok távolságának kiszámítására szolgáló beállítások megadására szolgál. Az érvényes elemek közé tartozik az distanceFunction és dataType a . |
distanceFunction |
A távolság/hasonlóság kiszámításához használt metrika. |
dataType |
A vektorok adattípusa. float32 , int8 értékek uint8 . Az alapértelmezett érték float32 . |
Támogatott metrikák a következőkhöz distanceFunction
:
cosine
, amely a (legkevésbé hasonló) és a (leginkább hasonló)+1
értékekből-1
áll.dotproduct
, amely () (legkevésbé hasonló)+∞
és-∞
-inf
() (+inf
leginkább hasonló) értékekkel rendelkezik.euclidean
, amely a (leginkább hasonló) és a (+inf
legkevésbé hasonló)+∞
értékekből0
áll.
Visszatérési típusok
Olyan numerikus kifejezést ad vissza, amely számba adja a két kifejezés közötti hasonlósági pontszámot.
Példák
Ez az első példa csak a szükséges argumentumokat tartalmazza.
SELECT VALUE {
name: s.name,
similarityScore: VectorDistance(s.vector1, s.vector2)
}
FROM
source s
ORDER BY
VectorDistance(s.vector1, s.vector2)
Ez a következő példa opcionális argumentumokat is tartalmaz.
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)
Megjegyzések
- Ez a függvény regisztrációt igényel az Azure Cosmos DB NoSQL Vector Search előzetes verziójában.
- Ez a függvény a vektorindex előnyeiből származik
- ha
false
nem kötelezőbool_expr
, akkor az útvonalon definiált vektorindex lesz használatban, ha létezik ilyen. Ha nincs definiálva index a vektorútvonalon, akkor ez a függvény teljes vizsgálatra áll vissza, és magasabb ru-díjakat és nagyobb késést eredményez, mint ha vektorindexet használ. - Ha
VectorDistance
egyORDER BY
záradékban használják, nincs szükség irány megadására,ORDER BY
mivel az eredmények mindig a leginkább hasonló (első) és a legkevésbé hasonló (utolsó) sorrendbe vannak rendezve a használt hasonlósági metrika alapján. - Az eredmény hasonlósági pontszámként van kifejezve.