Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
Azure SQL Database Azure SQL
Managed Instance
SQL Database v Microsoft Fabric
Funkce VECTOR_DISTANCE vypočítá vzdálenost mezi dvěma vektory pomocí zadané metriky vzdálenosti. Vektorová vzdálenost je vždy přesná a nepoužívá žádný vektorový index, i když je k dispozici. Pokud chcete použít vektorový index a provést přibližné vektorové vyhledávání, musíte použít funkci VECTOR_SEARCH . Další informace o tom, jak funguje vektorové indexování a vektorové vyhledávání, a rozdíly mezi přesným a přibližným vyhledáváním najdete v tématu Vektorové vyhledávání a vektorové indexy v databázovém stroji SQL.
Note
VECTOR_DISTANCEje k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.
Syntax
VECTOR_DISTANCE ( distance_metric , vector1 , vector2 )
Arguments
distance_metric
Řetězec s názvem metriky vzdálenosti, který se má použít k výpočtu vzdálenosti mezi těmito dvěma vektory. Podporují se následující metriky vzdálenosti:
-
cosine- Kosinus vzdálenost -
euclidean- Euklidská vzdálenost -
dot- (záporná) tečka
vector1
Výraz, který se vyhodnotí jako vektorový datový typ.
vector2
Výraz, který se vyhodnotí jako vektorový datový typ.
Metriky vzdálenosti
| Metric | Description | Range | Examples |
|---|---|---|---|
cosine |
Kosinus (úhlový) vzdálenost | [0, 2] |
0: Identické vektory2: protichůdné vektory |
euclidean |
Euklidská vzdálenost | [0, +∞] |
0: Identické vektory |
dot |
Indikace vzdálenosti na základě tečky, získané výpočtem záporného tečkového výrobku |
[-∞, +∞] | Menší čísla označují více podobných vektorů. |
Návratová hodnota
Funkce vrátí skalární hodnotu float , která představuje vzdálenost mezi dvěma vektory pomocí zadané metriky vzdálenosti.
Pokud distance_metric není platná metrika a zadané vektory nejsou datovým typem vektoru, vrátí se chyba.
Examples
Podrobnosti o databázi použité v ukázce najdete na GitHubu: Stáhněte a importujte článek Wikipedie s funkcemi Vector Embeddings.
Příklady předpokládají existenci tabulky s wikipedia_articles názvem sloupcem title_vector typu vector , který ukládá vkládání nadpisů článků na Wikipedii.
title_vector předpokládá se, že se jedná o vložený vygenerovaný modelem vkládání, například text-embedding-ada-002 nebo text-embedding-3-small, který vrací vektory s 1 536 dimenzemi.
Další příklady, včetně kompletních řešení, najdete v úložišti Azure SQL Database Vector Search na GitHubu.
A. Vytvoření vektoru z pole JSON
Následující příklad vytvoří vektor se třemi dimenzemi z řetězce s polem JSON.
DECLARE @v1 AS VECTOR(2) = '[1,1]';
DECLARE @v2 AS VECTOR(2) = '[-1,-1]';
SELECT VECTOR_DISTANCE('euclidean', @v1, @v2) AS euclidean,
VECTOR_DISTANCE('cosine', @v1, @v2) AS cosine,
VECTOR_DISTANCE('dot', @v1, @v2) AS negative_dot_product;
B. Vrácení prvních 10 podobných článků na základě názvů
Následující příklad vrátí prvních 10 nejvíce podobných článků k danému článku na základě kosinus vzdálenosti mezi jejich titulní vektory.
DECLARE @v AS VECTOR(1536);
SELECT @v = title_vector
FROM [dbo].[wikipedia_articles]
WHERE title = 'Alan Turing';
SELECT TOP (10) id,
title,
VECTOR_DISTANCE('cosine', @v, title_vector) AS distance
FROM [dbo].[wikipedia_articles]
ORDER BY distance;
C. Vrácení podobných článků na základě specifické vektorové vzdálenosti
Následující příklad vrátí všechny podobné články k danému článku na základě kosinus vzdálenosti mezi jejich titulní vektory a výběr pouze názvů s vzdáleností menší než 0,3.
DECLARE @v AS VECTOR(1536);
SELECT @v = title_vector
FROM [dbo].[wikipedia_articles]
WHERE title = 'Alan Turing';
SELECT id,
title,
VECTOR_DISTANCE('cosine', @v, title_vector) AS distance
FROM [dbo].[wikipedia_articles]
WHERE VECTOR_DISTANCE('cosine', @v, title_vector) < 0.3
ORDER BY distance;