VectorDistance (kueri NoSQL)
BERLAKU UNTUK: NoSQL
Mengembalikan skor kesamaan antara dua vektor yang ditentukan.
Sintaks
VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Argumen
Parameter | Deskripsi |
---|---|
vector_expr_1 |
Array atau float32 lebih kecil. |
vector_expr_2 |
Array atau float32 lebih kecil. |
bool_expr |
Boolean opsional yang menentukan bagaimana nilai komputasi digunakan dalam ekspresi ORDER BY. Jika true , maka brute force digunakan. Nilai false menggunakan indeks apa pun yang ditentukan pada properti vektor, jika ada. Nilai default false . |
obj_expr |
Objek berformat JSON opsional yang digunakan untuk menentukan opsi untuk perhitungan jarak vektor. Item yang valid meliputi distanceFunction dan dataType , dan searchListSizeMultiplier . |
Parameter yang didukung untuk opsional obj_expr
Parameter | Deskripsi |
---|---|
distanceFunction |
Metrik yang digunakan untuk menghitung jarak/kesamaan. |
dataType |
Jenis data vektor. float32 , int8 , uint8 nilai. Nilai default float32 . |
searchListSizeMultiplier |
Bilangan bulat yang menentukan ukuran daftar pencarian saat melakukan pencarian vektor. Meningkatkan ini dapat meningkatkan akurasi dengan mengorbankan biaya ru dan latensi. Min=1, Default=5, Max=100. |
Metrik yang didukung untuk distanceFunction
adalah:
cosine
, yang memiliki nilai dari-1
(paling tidak mirip) hingga+1
(paling mirip).dotproduct
, yang memiliki nilai dari-∞
(-inf
) (paling tidak mirip)+∞
dengan (+inf
) (paling mirip).euclidean
, yang memiliki nilai dari0
(paling mirip) dengan+∞
(+inf
) (paling tidak serupa).
Jenis yang dikembalikan
Mengembalikan ekspresi numerik yang menghitung skor kesamaan antara dua ekspresi.
Contoh
Contoh pertama ini menunjukkan 10 kueri pencarian vektor teratas hanya dengan argumen yang diperlukan. Satu properti diproyeksikan, bersama dengan skor yang dikembalikan oleh VectorDistance
. Kemudian, kami menggunakan ORDER BY
klausul untuk mengurutkan VectorDistance
skor secara berurutan dari yang paling mirip dengan paling sedikit.
SELECT TOP 10 c.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
Contoh berikutnya ini juga mencakup argumen opsional untuk 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'})
Penting
Selalu gunakan TOP N
klausa dalam SELECT
pernyataan kueri. Jika tidak, pencarian vektor akan mencoba mengembalikan lebih banyak hasil dan kueri akan lebih mahal RU dan memiliki latensi yang lebih tinggi daripada yang diperlukan.
Keterangan
- Fungsi ini memerlukan pengaktifan fitur Pencarian Vektor NoSQL Azure Cosmos DB.
- Fungsi ini mendapat manfaat dari indeks vektor
- Jika
false
diberikan sebagai opsionalbool_expr
, maka indeks vektor yang ditentukan pada jalur digunakan, jika ada. Jika tidak ada indeks yang ditentukan pada jalur vektor, maka fungsi ini kembali ke pemindaian penuh dan dikenakan biaya RU yang lebih tinggi dan latensi yang lebih tinggi daripada jika menggunakan indeks vektor. - Ketika
VectorDistance
digunakan dalam klausulORDER BY
, tidak ada arah yang perlu ditentukan karenaORDER BY
hasilnya selalu diurutkan dalam urutan paling mirip (pertama) hingga paling tidak serupa (terakhir) berdasarkan metrik kesamaan yang digunakan. - Hasilnya dinyatakan sebagai skor kesamaan.