Categorias:

Funções de similaridade vetorial

VECTOR_L2_DISTANCE

Calcula a distância L2 entre dois vetores.

Distância L2, também conhecida como distância euclidiana, é uma medida da distância entre dois vetores em um espaço vetorial. A distância é calculada tirando a raiz quadrada da soma das diferenças quadradas dos elementos do vetor. A distância pode ser um valor zero ou maior. Se a distância for zero, os vetores serão idênticos. Quanto maior a distância, mais distantes os vetores estão.

Consulte também:

VECTOR_INNER_PRODUCT , VECTOR_COSINE_SIMILARITY , Incorporações de vetor

Sintaxe

VECTOR_L2_DISTANCE( <vector>, <vector> )
Copy

Argumentos

vector

O valor VECTOR para calcular a distância.

vector

O valor VECTOR para calcular a distância.

Retornos

Retorna a distância entre os dois vetores de entrada como um valor FLOAT.

Notas de uso

  • Devido a otimizações computacionais nas funções de comparação de vetores, os erros de ponto flutuante podem ser um pouco maiores do que o normal (por exemplo, cerca de 1e-4).

Exemplos

Este exemplo usa a função VECTOR_L2_DISTANCE para determinar quais vetores na tabela estão mais próximos entre si entre as colunas a e b:

CREATE TABLE vectors (a VECTOR(FLOAT, 3), b VECTOR(FLOAT, 3));
INSERT INTO vectors SELECT [1.1,2.2,3]::VECTOR(FLOAT,3), [1,1,1]::VECTOR(FLOAT,3);
INSERT INTO vectors SELECT [1,2.2,3]::VECTOR(FLOAT,3), [4,6,8]::VECTOR(FLOAT,3);

-- Compute the pairwise inner product between columns a and b
SELECT VECTOR_L2_DISTANCE(a, b) FROM vectors;
Copy
+------+
| 2.3  |
|------|
| 6.95 |
+------+