All Products
Search
Document Center

MaxCompute:COSINE_DISTANCE

Last Updated:Jul 14, 2026

Fungsi COSINE_DISTANCE menghitung jarak cosinus antara dua vektor.

Catatan

Kemiripan cosinus didasarkan pada sudut antara dua vektor dalam ruang multidimensi, terlepas dari besarannya. Nilai ini dihitung dengan membagi hasil kali dalam (inner product) kedua vektor dengan hasil kali panjangnya. Kemiripan cosinus selalu berada dalam interval [-1, 1]. Sebagai contoh, dua vektor identik memiliki kemiripan cosinus sebesar 1, dua vektor yang saling tegak lurus memiliki kemiripan cosinus sebesar 0, dan dua vektor yang arahnya berlawanan memiliki kemiripan cosinus sebesar -1.

Sintaksis

FLOAT COSINE_DISTANCE( <vector>, <vector> )

Parameter

vector: Wajib. Vektor bertipe data VECTOR.

Nilai kembalian

Mengembalikan jarak cosinus antara dua vektor input sebagai nilai FLOAT dalam rentang [0, 2].

Pengoptimalan fungsi vektor dapat menyebabkan sedikit kehilangan presisi bilangan titik mengambang, dengan margin kesalahan maksimum sebesar 1e-4.

Contoh

-- Aktifkan tipe data VECTOR.
set odps.sql.type.vector.enable=true;
set odps.sql.type.system.odps2=true;

-- Siapkan data.
CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT CAST(ARRAY(1.1,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(1.0,1.0,1.0) AS VECTOR(FLOAT,3));
INSERT INTO vectors SELECT CAST(ARRAY(1.0,2.2,3.0) AS VECTOR(FLOAT,3)), CAST(ARRAY(4.0,6.0,8.0) AS VECTOR(FLOAT,3));


SELECT a, COSINE_DISTANCE(a, CAST(ARRAY(1.0,2.0,3.0) AS VECTOR(FLOAT, 3))) AS similarity
  FROM vectors
  ORDER BY similarity DESC
  LIMIT 1;
-- Result:
+------+------------+
| a    | similarity |
+------+------------+
| [1.1, 2.2, 3] | 0.0010684728622436523 |
+------+------------+