Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: NoSQL
Returnerar likhetspoängen mellan två angivna vektorer.
Syntax
VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Argument
| Parameter | Beskrivning |
|---|---|
vector_expr_1 |
En matris med float32 eller mindre. |
vector_expr_2 |
En matris med float32 eller mindre. |
bool_expr |
Ett valfritt booleskt värde som anger hur det beräknade värdet används i ett ORDER BY-uttryck. Om trueanvä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 valfri JSON-formaterad objektliteral som används för att ange alternativ för vektoravståndsberäkningen. Giltiga objekt är distanceFunction, dataTypeoch searchListSizeMultiplier. |
Parametrar som stöds för det valfria obj_expr
| Parameter | Beskrivning |
|---|---|
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. |
searchListSizeMultiplier |
Ett heltal som anger söklistans storlek när en vektorsökning genomförs på DiskANN-indexet. Om du ökar detta kan du förbättra noggrannheten på bekostnad av RU-kostnader och svarstider. Min=1, Default=5, Max=100. |
quantizedVectorListMultiplier |
Ett heltal som anger söklistans storlek när en vektorsökning genomförs på quantizedFlat-indexet. Om du ökar detta kan du förbättra noggrannheten på bekostnad av RU-kostnader och svarstider. Min=1, Default=5, Max=100. |
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 här första exemplet visar en topp 10-vektorsökningsfråga med endast de argument som krävs. En egenskap projiceras, tillsammans med poängen som returneras av VectorDistance. Sedan använder vi en ORDER BY sats för att sortera VectorDistance poäng i ordning från de flesta som liknar minst.
SELECT TOP 10 c.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
I nästa exempel finns även valfria argument för 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'})
Viktigt!
Använd alltid en TOP N sats i instruktionen för SELECT en fråga. Annars försöker vektorsökningen returnera många fler resultat och frågan kostar fler RU:er och har högre svarstid än nödvändigt.
Kommentarer
- Den här funktionen kräver aktivering av funktionen Azure Cosmos DB NoSQL Vector Search.
- Den här funktionen drar nytta av ett vektorindex
- Om
falseanges som valfrittbool_expranvä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
VectorDistanceanvänds i enORDER BYsats behöver ingen riktning anges förORDER BYeftersom 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.