Aracılığıyla paylaş


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 truedeneme 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 dataTypeve 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ğerlerine 0 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 VectorDistancedö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_exprolarak 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 Bir ORDER 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 belirtilmesi ORDER BY gerekmez.
  • Sonuç, benzerlik puanı olarak ifade edilir.