Megosztás a következőn keresztül:


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 dataTypea 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() (+infleginkább hasonló) értékekkel rendelkezik.
  • euclidean, amely a (leginkább hasonló) és a (+inflegkevésbé hasonló) +∞ értékekből 0 á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 VectorDistancepontszá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 egy ORDER 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.