Bagikan melalui


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 dari 0 (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 opsional bool_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 klausul ORDER BY , tidak ada arah yang perlu ditentukan karena ORDER BY hasilnya selalu diurutkan dalam urutan paling mirip (pertama) hingga paling tidak serupa (terakhir) berdasarkan metrik kesamaan yang digunakan.
  • Hasilnya dinyatakan sebagai skor kesamaan.