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: SQL Server 2025 (17.x) Förhandsversion av
Azure SQL Database
Azure SQL Managed Instance
SQL Database i Förhandsversion av Microsoft Fabric
Funktionen VECTOR_DISTANCE beräknar avståndet mellan två vektorer med ett angivet avståndsmått. Vektoravståndet är alltid exakt och använder inget vektorindex, även om det är tillgängligt. För att kunna använda ett vektorindex och därmed utföra en ungefärlig vektorsökning måste du använda funktionen VECTOR_SEARCH . Mer information om hur vektorindexering och vektorsökning fungerar och skillnaderna mellan exakt och ungefärlig sökning finns i Vektorer i SQL Database Engine.
Note
VECTOR_DISTANCEär tillgängligt i Azure SQL Managed Instance med sql Server 2025- eller always-up-to-date update-principen.
Syntax
Transact-SQL syntaxkonventioner
VECTOR_DISTANCE ( distance_metric , vector1 , vector2 )
Arguments
distance_metric
En sträng med namnet på det avståndsmått som ska användas för att beräkna avståndet mellan de två angivna vektorerna. Följande avståndsmått stöds:
-
cosine- Cosinnavstånd -
euclidean- Euklidiska avstånd -
dot- (Negativ) Punktprodukt
vektor1
Ett uttryck som utvärderas till vektordatatyp .
vektor2
Ett uttryck som utvärderas till vektordatatyp .
Avståndsmått
| Metric | Description | Range | Examples |
|---|---|---|---|
cosine |
Cosininavstånd (angular) | [0, 2] |
0: identiska vektorer2: motsatta vektorer |
euclidean |
Euklidiska avstånd | [0, +∞] |
0: identiska vektorer |
dot |
Punktproduktbaserad indikation på avstånd, erhålls genom att beräkna den negativa punktprodukten |
[-∞, +∞] | Mindre tal indikerar mer liknande vektorer |
Returvärde
Funktionen returnerar ett skalärt flyttalvärde som representerar avståndet mellan de två vektorerna med det angivna avståndsmåttet.
Ett fel returneras om distance_metric inte är ett giltigt mått och om de angivna vektorerna inte är av vektordatatypen.
Examples
Information om databasen som används i exemplet finns på GitHub: Ladda ned och importera Wikipedia-artikeln med vektorinbäddningar.
Exempel förutsätter att det finns en tabell med namnet wikipedia_articles med en kolumn title_vector av typen vector som lagrar rubrikens inbäddningar av Wikipedia-artiklar.
title_vector antas vara en inbäddning som genereras med en inbäddningsmodell, som text-embedding-ada-002 eller text-embedding-3-small, som returnerar vektorer med 1 536 dimensioner.
Om du vill ha fler exempel, inklusive lösningar från slutpunkt till slutpunkt, går du till GitHub-lagringsplatsen Azure SQL Database Vector Search Samples.
A. Skapa en vektor från en JSON-matris
I följande exempel skapas en vektor med tre dimensioner från en sträng med en JSON-matris.
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. Returnera topp 10 liknande artiklar baserat på rubriker
I följande exempel returneras de 10 mest liknande artiklarna till en viss artikel, baserat på cosinéavståndet mellan deras titelvektorer.
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. Returnera liknande artiklar baserat på specifikt vektoravstånd
I följande exempel returneras alla liknande artiklar till en viss artikel, baserat på cosinéavståndet mellan deras titelvektorer och väljer endast rubriker med ett avstånd som är mindre än 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;