Sdílet prostřednictvím


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 truese 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, int8uint8 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 -∞ () (-infnejméně podobné) na +∞ (+inf) (nejvíce podobné).
  • euclidean, který obsahuje hodnoty od 0 (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 v ORDER BY klauzuli, není nutné pro ORDER 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.