VectorDistance (dotaz NoSQL)
PLATÍ PRO: NoSQL
Vrátí skóre podobnosti mezi dvěma zadanými vektory.
Syntaxe
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
Argumenty
Popis | |
---|---|
spatial_expr_1 |
float32 Pole nebo menší. |
spatial_expr_2 |
float32 Pole nebo menší. |
bool_expr |
Logická hodnota určující způsob použití vypočítané hodnoty ve výrazu ORDER BY. Pokud true se použije hrubá síla. Hodnota false používá libovolný index definovaný pro vlastnost vektoru, pokud existuje. Výchozí hodnota je false . |
obj_expr |
Literál objektu ve formátu JSON, který slouží k určení možností pro výpočet vektorové vzdálenosti. Platné položky zahrnují distanceFunction a dataType . |
distanceFunction |
Metrika použitá k výpočtu vzdálenosti a podobnosti. |
dataType |
Datový typ vektorů. float32 , int8 uint8 hodnoty. Výchozí hodnota je float32 . |
Podporované metriky pro distanceFunction
:
cosine
, který obsahuje hodnoty od-1
(nejméně podobné) (+1
nejvíce podobné).dotproduct
, který obsahuje hodnoty od-∞
() (-inf
nejméně podobné) na+∞
(+inf
) (nejvíce podobné).euclidean
, který obsahuje hodnoty od0
(nejvíce podobné) na+∞
(+inf
) (nejméně podobné).
Návratové typy
Vrátí číselný výraz, který vyčíslí skóre podobnosti mezi dvěma výrazy.
Příklady
Tento první příklad ukazuje 10 nejlepších vektorových vyhledávacích dotazů s pouze požadovanými argumenty. Jedna vlastnost se promítá spolu s skóre vráceným parametrem VectorDistance
. Potom uživatelem ORDER BY
vytvoříme klauzuli pro řazení VectorDistance
skóre v pořadí od nejpodobnějšího po nejnižší.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
Tento další příklad obsahuje také volitelné argumenty pro VectorDistance
SELECT TOP 10 s.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',})
Poznámky
- Tato funkce vyžaduje registraci ve funkci Azure Cosmos DB NoSQL Vector Search ve verzi Preview.
- Tato funkce využívá vektorový index.
- pokud
false
je uvedena jako volitelnábool_expr
, použije se vektorový index definovaný v cestě, pokud existuje. Pokud není na vektorové cestě definován žádný index, vrátí se tato funkce k úplnému prohledávání a bude se účtovat vyšší poplatky za RU a vyšší latence, než kdyby používala vektorový index. - Pokud
VectorDistance
se použije vORDER BY
klauzuli, není nutné proORDER BY
výsledky zadat žádný směr, protože výsledky jsou vždy seřazeny v pořadí od většiny podobných (první) k nejnižší (poslední) na základě použité metriky podobnosti. - Výsledek se vyjadřuje jako skóre podobnosti.