Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Database SQL SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
di Microsoft Fabric
Fungsi menghitung VECTOR_DISTANCE jarak antara dua vektor menggunakan metrik jarak tertentu. Jarak vektor selalu tepat dan tidak menggunakan indeks vektor apa pun, bahkan jika tersedia. Untuk menggunakan indeks vektor dan dengan demikian melakukan perkiraan pencarian vektor, Anda harus menggunakan fungsi VECTOR_SEARCH . Untuk mempelajari selengkapnya tentang cara kerja pengindeksan vektor dan pencarian vektor, dan perbedaan antara pencarian yang tepat dan perkiraan, lihat Indeks pencarian vektor dan vektor di Mesin Database SQL.
Note
VECTOR_DISTANCEtersedia di Azure SQL Managed Instance dengan kebijakan pembaruanSQL Server 2025 atau Always-up-to-date.
Syntax
VECTOR_DISTANCE ( distance_metric , vector1 , vector2 )
Arguments
distance_metric
String dengan nama metrik jarak yang akan digunakan untuk menghitung jarak antara dua vektor yang diberikan. Metrik jarak berikut didukung:
-
cosine- Jarak kosinus -
euclidean- Jarak Euclidean -
dot- (Negatif) Produk titik
vektor1
Ekspresi yang mengevaluasi ke jenis data vektor .
vektor2
Ekspresi yang mengevaluasi ke jenis data vektor .
Metrik jarak
| Metric | Description | Range | Examples |
|---|---|---|---|
cosine |
Jarak kosinus (sudut) | [0, 2] |
0: vektor identik2: vektor yang berlawanan |
euclidean |
Jarak Euclidean | [0, +∞] |
0: vektor identik |
dot |
Indikasi jarak berbasis produk titik, diperoleh dengan menghitung produk titik negatif |
[-∞, +∞] | Angka yang lebih kecil menunjukkan lebih banyak vektor serupa |
Mengembalikan nilai
Fungsi mengembalikan nilai float skalar yang mewakili jarak antara kedua vektor menggunakan metrik jarak yang ditentukan.
Kesalahan dikembalikan jika distance_metric bukan metrik yang valid dan jika vektor yang disediakan bukan dari jenis data vektor.
Examples
Detail database yang digunakan dalam sampel dapat ditemukan di GitHub: Unduh dan impor Artikel Wikipedia dengan Penyematan Vektor.
Contoh mengasumsikan keberadaan tabel bernama wikipedia_articles dengan kolom title_vector jenis vector yang menyimpan penyematan judul artikel Wikipedia.
title_vector diasumsikan sebagai penyematan yang dihasilkan dengan model penyematan, seperti text-embedding-ada-002 atau text-embedding-3-small, yang mengembalikan vektor dengan 1.536 dimensi.
Untuk contoh lainnya, termasuk solusi end-to-end, buka repositori GitHub Sampel Pencarian Vektor Azure SQL Database.
A. Membuat vektor dari array JSON
Contoh berikut membuat vektor dengan tiga dimensi dari string dengan array 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. Mengembalikan 10 artikel serupa teratas berdasarkan judul
Contoh berikut mengembalikan 10 artikel paling mirip teratas ke artikel tertentu, berdasarkan jarak kosinus antara vektor judul mereka.
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. Mengembalikan artikel serupa berdasarkan jarak vektor tertentu
Contoh berikut mengembalikan semua artikel serupa ke artikel tertentu, berdasarkan jarak kosinus antara vektor judulnya, hanya memilih judul dengan jarak kurang dari 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;