Todos os produtos
Search
Central de documentação

MaxCompute:COSINE_DISTANCE

Última atualização: Jul 13, 2026

A função COSINE_DISTANCE calcula a distância do cosseno entre dois vetores.

Nota

A similaridade do cosseno baseia-se no ângulo entre dois vetores em um espaço multidimensional, independentemente de suas magnitudes. Para calculá-la, divida o produto interno dos dois vetores pelo produto de seus comprimentos. A similaridade do cosseno está sempre no intervalo [-1, 1]. Por exemplo, dois vetores idênticos têm similaridade do cosseno igual a 1, dois vetores ortogonais têm similaridade 0 e dois vetores com direções opostas apresentam similaridade -1.

Sintaxe

FLOAT COSINE_DISTANCE( <vector>, <vector> )

Parâmetros

vector: Obrigatório. Um vetor do tipo de dados VECTOR.

Valor retornado

Retorna a distância do cosseno entre os dois vetores de entrada como um valor FLOAT no intervalo [0, 2].

A otimização de funções vetoriais pode causar uma leve perda de precisão de ponto flutuante. O resultado apresenta uma margem de erro máxima de 1e-4.

Exemplos

-- Enable the VECTOR data type.
set odps.sql.type.vector.enable=true;
set odps.sql.type.system.odps2=true;

-- Prepare 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 |
+------+------------+