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_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Argumentumok
Paraméter | Leírás |
---|---|
vector_expr_1 |
Egy vagy kisebb tömb float32 . |
vector_expr_2 |
Egy vagy kisebb tömb float32 . |
bool_expr |
Nem kötelező logikai érték, amely megadja, hogy a számított érték hogyan legyen használva 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 |
Választható JSON formátumú objektumkonstans, amellyel megadhatja a vektorok távolságának kiszámításához szükséges beállításokat. Az érvényes elemek közé tartozik az distanceFunction és dataType a searchListSizeMultiplier . |
A választható paraméterek támogatott paraméterei obj_expr
Paraméter | Leírás |
---|---|
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 . |
searchListSizeMultiplier |
Egy egész szám, amely a keresési lista méretét adja meg vektoros keresés végrehajtásakor. Ennek növelése javíthatja a pontosságot a ru költségeinek és késésének rovására. Min=1, Default=5, Max=100. |
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 egy 10 leggyakoribb vektorkeresési lekérdezést mutat be, amely csak a szükséges argumentumokat foglalja össze. A program egy tulajdonságot vetített ki, valamint a függvény által visszaadott VectorDistance
pontszámot. Ezután egy záradékot ORDER BY
hozunk létre a pontszámok rendezéséhez VectorDistance
a leginkább hasonló és a legkevésbé hasonló sorrendben.
SELECT TOP 10 c.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
Ez a következő példa a következő argumentumokat is tartalmazza: VectorDistance
SELECT TOP 10 c.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'})
Fontos
Mindig használjon záradékot TOP N
egy SELECT
lekérdezés utasításában. Ellenkező esetben a vektorkeresés sokkal több eredményt próbál visszaadni, és a lekérdezés több kérelemegységbe kerül, és a szükségesnél nagyobb késéssel rendelkezik.
Megjegyzések
- Ehhez a függvényhez engedélyezni kell az Azure Cosmos DB NoSQL Vector Search szolgáltatást.
- Ez a függvény a vektorindex előnyeiből származik
- Ha
false
nem kötelezőbool_expr
, akkor az útvonalon definiált vektorindexet használja a rendszer, 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.