Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2025 (17.x)
Microsoft Fabric'te
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği SQL veritabanı
işlevi, VECTOR_DISTANCE belirtilen uzaklık ölçümünü kullanarak iki vektör arasındaki uzaklığı hesaplar. Vektör uzaklığı her zaman kesindir ve kullanılabilir olsa bile herhangi bir vektör dizini kullanmaz. Vektör dizini kullanmak ve dolayısıyla yaklaşık vektör araması yapmak için VECTOR_SEARCH işlevini kullanmanız gerekir. Vektör dizin oluşturma ve vektör aramanın nasıl çalıştığı ve tam ve yaklaşık arama arasındaki farklar hakkında daha fazla bilgi edinmek için SQL Veritabanı Altyapısı'nda Vektör araması ve vektör dizinleri bölümüne bakın.
Note
VECTOR_DISTANCE , SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesiyle Azure SQL Yönetilen Örneği'nde kullanılabilir.
Syntax
Transact-SQL söz dizimi kuralları
VECTOR_DISTANCE ( distance_metric , vector1 , vector2 )
Arguments
distance_metric
Verilen iki vektör arasındaki uzaklığı hesaplamak için kullanılacak uzaklık ölçümünün adını içeren bir dize. Aşağıdaki uzaklık ölçümleri desteklenir:
-
cosine- Kosinüs uzaklığı -
euclidean- Öklid uzaklığı -
dot- (Negatif) Noktalı ürün
vektör1
Vektör veri türü olarak değerlendirilen bir ifade.
vektör2
Vektör veri türü olarak değerlendirilen bir ifade.
Mesafe ölçümleri
| Metric | Description | Range | Examples |
|---|---|---|---|
cosine |
Kosinüs (açısal) uzaklık | [0, 2] |
0: özdeş vektörler2: karşıt vektörler |
euclidean |
Öklid uzaklığı | [0, +∞] |
0: özdeş vektörler |
dot |
Noktalı ürün tabanlı mesafe göstergesi, negatif nokta ürünü hesaplanarak elde edilir |
[-∞, +∞] | Daha küçük sayılar daha benzer vektörleri gösterir |
Dönüş değeri
İşlev, belirtilen uzaklık ölçümünü kullanarak iki vektör arasındaki uzaklığı temsil eden bir skaler float değeri döndürür.
distance_metric geçerli bir ölçüm değilse ve sağlanan vektörler vektör veri türünde değilse bir hata döndürülür.
Examples
Örnekte kullanılan veritabanının ayrıntıları GitHub'da bulunabilir: Vektör Eklemeleri ile Wikipedia Makalesini indirin ve içeri aktarın.
Örneklerde, başlığın Wikipedia makalelerinin eklemelerini depolayan türünde wikipedia_articles bir sütuna title_vector sahip adlı vector bir tablonun varlığı varsayılır.
title_vector1.536 boyutlu vektörler döndüren veya text-embedding-ada-002gibi text-embedding-3-small bir ekleme modeliyle oluşturulan bir ekleme olduğu varsayılır.
Uçtan uca çözümler de dahil olmak üzere daha fazla örnek için Azure SQL Veritabanı Vektör Arama Örnekleri GitHub deposuna gidin.
A. JSON dizisinden vektör oluşturma
Aşağıdaki örnek, JSON dizisine sahip bir dizeden üç boyutlu bir vektör oluşturur.
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. Başlıklara göre ilk 10 benzer makale döndür
Aşağıdaki örnek, başlık vektörleri arasındaki kosinüs uzaklığı temelinde belirli bir makaleye en çok benzeyen 10 makaleyi döndürür.
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. Belirli vektör uzaklığı temelinde benzer makaleler döndür
Aşağıdaki örnek, yalnızca 0,3'ten küçük uzaklığa sahip başlıkları seçerek başlık vektörleri arasındaki kosinüs uzaklığı temelinde belirli bir makaleye benzer tüm makaleleri döndürür.
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;