VectorDistance (NoSQL sorgusu)
UYGULANANLAR: NoSQL
Belirtilen iki vektör arasındaki benzerlik puanını döndürür.
Söz dizimi
VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Bağımsız değişkenler
Parametre | Açıklama |
---|---|
vector_expr_1 |
Veya daha küçük bir float32 dizi. |
vector_expr_2 |
Veya daha küçük bir float32 dizi. |
bool_expr |
Order BY ifadesinde hesaplanan değerin nasıl kullanıldığını belirten isteğe bağlı boole değeri. ise true deneme yanılma kuvveti kullanılır. değeri false , varsa vector özelliğinde tanımlanan herhangi bir dizini kullanır. Varsayılan değer false olarak belirlenmiştir. |
obj_expr |
Vektör uzaklığı hesaplaması seçeneklerini belirtmek için kullanılan isteğe bağlı JSON biçimli nesne değişmez değeri. Geçerli öğeler şunlardır distanceFunction : ve dataType ve searchListSizeMultiplier . |
İsteğe bağlı için desteklenen parametreler obj_expr
Parametre | Açıklama |
---|---|
distanceFunction |
Uzaklığı/benzerliği hesaplamak için kullanılan ölçüm. |
dataType |
Vektörlerin veri türü. float32 , int8 , uint8 değerleri. Varsayılan değer float32 olarak belirlenmiştir. |
searchListSizeMultiplier |
Vektör araması yaparken arama listesinin boyutunu belirten tamsayı. Bunu artırmak, RU maliyeti ve gecikme süresi pahasına doğruluğu artırabilir. Min=1, Default=5, Max=100. |
için distanceFunction
desteklenen ölçümler şunlardır:
cosine
, (en az benzer) ile (en benzer)+1
değerlerine-1
sahiptir.dotproduct
, () (en az benzer) ile (-inf
+inf
) (en benzer)+∞
değerlerine-∞
sahiptir.euclidean
, (en benzer) ile (+inf
) (en az benzer)+∞
değerlerine0
sahiptir.
Dönüş türleri
İki ifade arasındaki benzerlik puanını numaralandıran sayısal bir ifade döndürür.
Örnekler
Bu ilk örnekte yalnızca gerekli bağımsız değişkenleri içeren ilk 10 vektör arama sorgusu gösterilmektedir. Bir özellik, tarafından VectorDistance
döndürülen puanla birlikte yansıtılır. Ardından, puanları en az değerine benzer şekilde sıralamak VectorDistance
için bir ORDER BY
yan tümcesi kullanacağız.
SELECT TOP 10 c.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
Bu sonraki örnek için isteğe bağlı bağımsız değişkenleri de içerir VectorDistance
SELECT TOP 10 c.name, VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32'})
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32'})
Önemli
Sorgu deyiminde SELECT
her zaman bir yan tümce kullanınTOP N
. Aksi takdirde vektör araması çok daha fazla sonuç döndürmeyi dener ve sorgu daha fazla RU'ya mal olur ve gerekenden daha yüksek gecikme süresine sahip olur.
Açıklamalar
- Bu işlev, Azure Cosmos DB NoSQL Vektör Arama özelliğini etkinleştirmeyi gerektirir.
- Bu işlev vektör dizininden yararlanır
- İsteğe bağlı
bool_expr
olarak verilirsefalse
, varsa yolda tanımlanan vektör dizini kullanılır. Vektör yolunda hiçbir dizin tanımlanmamışsa, bu işlev tam taramaya geri döner ve vektör dizini kullanıldığından daha yüksek RU ücretleri ve daha yüksek gecikme süresine neden olur. VectorDistance
BirORDER BY
yan tümcede kullanıldığında, sonuçlar her zaman kullanılan benzerlik ölçümüne göre en benzer (ilk) ile en az benzer (son) sıralandığından için yönün belirtilmesiORDER BY
gerekmez.- Sonuç, benzerlik puanı olarak ifade edilir.
İlgili içerik
- Sistem işlevleri
- Vektör araması için NoSQL için Azure Cosmos DB kurulumu.
- vektör dizini