Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Database a Microsoft Fabricben
A VECTOR_DISTANCE függvény kiszámítja a két vektor közötti távolságot egy megadott távolságmetrika használatával. A vektor távolsága mindig pontos, és nem használ vektorindexet, még akkor sem, ha elérhető. Ahhoz, hogy vektorindexet használjon, és így hozzávetőleges vektorkeresést hajtson végre, a VECTOR_SEARCH függvényt kell használnia. Ha többet szeretne megtudni a vektorindexelés és a vektorkeresés működéséről, valamint a pontos és közelítő keresés közötti különbségekről, tekintse meg a vektorkeresést és a vektorindexeket az SQL Database Engine-ben.
Note
VECTOR_DISTANCE a felügyelt Azure SQL-példányban az SQL Server 2025 vagy az Always-up-todátumfrissítésiszabályzattal érhető el.
Syntax
Transact-SQL szintaxis konvenciók
VECTOR_DISTANCE ( distance_metric , vector1 , vector2 )
Arguments
distance_metric
A két vektor közötti távolság kiszámításához használandó távolságmetrika nevével rendelkező sztring. A következő távolságmetrikák támogatottak:
-
cosine- Koszinusz távolság -
euclidean- Euklideszi távolság -
dot- (Negatív) Pont termék
vektor1
Vektor adattípusra kiértékelt kifejezés.
vektor2
Vektor adattípusra kiértékelt kifejezés.
Távolsági metrikák
| Metric | Description | Range | Examples |
|---|---|---|---|
cosine |
Koszinusz (szögletes) távolság | [0, 2] |
0: azonos vektorok2: ellentétes vektorok |
euclidean |
Euklideszi távolság | [0, +∞] |
0: azonos vektorok |
dot |
Pontalapú távolság jelzése, a negatív pont szorzat kiszámításával nyerhető |
[-∞, +∞] | A kisebb számok több hasonló vektort jeleznek |
Visszaadott érték
A függvény egy skaláris lebegőpontos értéket ad vissza, amely a két vektor közötti távolságot jelöli a megadott távolságmetrika használatával.
Hiba jelenik meg, ha distance_metric nem érvényes metrika, és ha a megadott vektorok nem vektor adattípusúak.
Examples
A mintában használt adatbázis részletei a GitHubon találhatók: Töltse le és importálja a Wikipédiából származó cikket vektoros beágyazásokkal.
A példák feltételezik, hogy létezik olyan tábla wikipedia_articles , amelynek neve egy olyan oszlop title_vector , vector amely a Wikipédia-cikkek címbe ágyazását tárolja.
title_vector a függvény egy beágyazási modellel létrehozott beágyazást feltételez, amely text-embedding-ada-002text-embedding-3-small1536 dimenziójú vektorokat ad vissza.
További példákat, például a végpontok közötti megoldásokat az Azure SQL Database Vektorkeresési minták GitHub-adattárában találja.
A. Vektor létrehozása JSON-tömbből
Az alábbi példa egy JSON-tömböt tartalmazó sztringből három dimenzióval rendelkező vektort hoz létre.
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. Az első 10 hasonló cikk visszaadása címek alapján
Az alábbi példa a címvektorok közötti koszinusz távolság alapján adja vissza az első 10 legtöbb hasonló cikket egy adott cikkhez.
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. Hasonló cikkeket ad vissza adott vektortávolság alapján
Az alábbi példa az összes hasonló cikket visszaadja egy adott cikkhez a címvektorok közötti koszinusz távolság alapján, és csak a 0,3-nál kisebb távolságú címeket választja ki.
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;