Bagikan melalui


VectorDistance (kueri NoSQL)

BERLAKU UNTUK: NoSQL

Mengembalikan skor kesamaan antara dua vektor yang ditentukan.

Catatan

Untuk informasi selengkapnya, lihat Data lokasi Geospasial dan GeoJSON.

Sintaks

VECTORDISTANCE(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])  

Argumen

Deskripsi
spatial_expr_1 Array atau float32 lebih kecil.
spatial_expr_2 Array atau float32 lebih kecil.
bool_expr Boolean yang menentukan bagaimana nilai komputasi digunakan dalam ekspresi ORDER BY. Jika true, maka brute force digunakan. Nilai false memanfaatkan indeks apa pun yang ditentukan pada properti vektor, jika ada. Nilai default false.
obj_expr Objek berformat JSON literal yang digunakan untuk menentukan opsi untuk perhitungan jarak vektor. Item yang valid meliputi distanceFunction dan dataType.
distanceFunction Metrik yang digunakan untuk menghitung jarak/kesamaan.
dataType Jenis data vektor. float32, int8, uint8 nilai. Nilai default float32.

Metrik yang didukung untuk distanceFunction adalah:

  • kosinus, yang memiliki nilai dari -1 (paling tidak mirip) dengan +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

Dengan argumen yang diperlukan

SELECT c.name, VectorDistance(c.vector1, c.vector2) AS SimilarityScore
FROM c
ORDER BY VectorDistance(c.vector1, c.vector2)

Dengan argumen opsional

SELECT c.name, VectorDistance(c.vector1, c.vector2, true, {'distanceFunction':'cosine', 'dataType':'float32',}) AS SimilarityScore
FROM c
ORDER BY VectorDistance(c.vector1, c.vector2)

Keterangan

  • Fungsi ini memerlukan pendaftaran di fitur pratinjau Azure Cosmos DB NoSQL Vector Search.
  • 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 didefinisikan pada jalur vektor, maka 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.