Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2025 (17.x)
Banco de Dados
SQL do AzureBanco de DadosSQL do Azure Banco de Dados SQL banco de dados SQL do Banco de Dados SQL do Azure
banco de dados SQL no Microsoft Fabric
A VECTOR_DISTANCE função calcula a distância entre dois vetores usando uma métrica de distância especificada. A distância do vetor é sempre exata e não usa nenhum índice de vetor, mesmo que disponível. Para usar um índice de vetor e, portanto, executar uma pesquisa de vetor aproximada, você deve usar a função VECTOR_SEARCH . Para saber mais sobre como funciona a indexação de vetores e a pesquisa de vetor e as diferenças entre a pesquisa exata e aproximada, consulte a pesquisa vetor e índices de vetor no Mecanismo de Banco de Dados SQL.
Note
VECTOR_DISTANCEestá disponível na Instância Gerenciada de SQL do Azure com a política de atualização do SQL Server 2025 ou Always-up-to-date.
Syntax
Convenções de sintaxe de Transact-SQL
VECTOR_DISTANCE ( distance_metric , vector1 , vector2 )
Arguments
distance_metric
Uma string com o nome da métrica de distância a ser usada para calcular a distância entre os dois vetores fornecidos. As seguintes métricas de distância são suportadas:
-
cosine- Distância do cosseno -
euclidean- Distância euclidiana -
dot- (Negativo) Produto escalar
vector1
Uma expressão que é avaliada como tipo de dados de vetor .
vector2
Uma expressão que é avaliada como tipo de dados de vetor .
Métricas de distância
| Metric | Description | Range | Examples |
|---|---|---|---|
cosine |
Distância do cosseno (angular) | [0, 2] |
0: vetores idênticos2: vetores opostos |
euclidean |
Distância euclidiana | [0, +∞] |
0: vetores idênticos |
dot |
Indicação de distância baseada em produto escalar, obtido pelo cálculo do produto escalar negativo |
[-∞, +∞] | Números menores indicam vetores mais semelhantes |
Valor de retorno
A função retorna um valor escalar flutuante que representa a distância entre os dois vetores usando a métrica de distância especificada.
Um erro será retornado se distance_metric não for uma métrica válida e se os vetores fornecidos não forem do tipo de dados de vetor.
Examples
Os detalhes do banco de dados usado no exemplo podem ser encontrados no GitHub: Baixe e importe o artigo da Wikipédia com o Vector Embeddings.
Os exemplos assumem a existência de uma tabela nomeada wikipedia_articles com uma coluna title_vector do tipo vector que armazena as incorporações de títulos de artigos da Wikipédia.
title_vector supõe-se que seja uma inserção gerada com um modelo de inserção, como text-embedding-ada-002 ou text-embedding-3-small, que retorna vetores com 1.536 dimensões.
Para obter mais exemplos, incluindo soluções de ponta a ponta, acesse o repositório GitHub de Exemplos de Pesquisa de Vetor do Banco de Dados SQL do Azure.
A. Criar um vetor de uma matriz JSON
O exemplo a seguir cria um vetor com três dimensões de uma cadeia de caracteres com uma matriz JSON.
DECLARE @v1 AS VECTOR(2) = '[1,1]';
DECLARE @v2 AS VECTOR(2) = '[-1,-1]';
SELECT VECTOR_DISTANCE('euclidean', @v1, @v2) AS euclidean,
VECTOR_DISTANCE('cosine', @v1, @v2) AS cosine,
VECTOR_DISTANCE('dot', @v1, @v2) AS negative_dot_product;
B. Retornar os 10 principais artigos semelhantes com base em títulos
O exemplo a seguir retorna os 10 artigos mais semelhantes a um determinado artigo, com base na distância do cosseno entre seus vetores de título.
DECLARE @v AS VECTOR(1536);
SELECT @v = title_vector
FROM [dbo].[wikipedia_articles]
WHERE title = 'Alan Turing';
SELECT TOP (10) id,
title,
VECTOR_DISTANCE('cosine', @v, title_vector) AS distance
FROM [dbo].[wikipedia_articles]
ORDER BY distance;
C. Retornar artigos semelhantes com base na distância de vetor específica
O exemplo a seguir retorna todos os artigos semelhantes a um determinado artigo, com base na distância cosseno entre seus vetores de título, selecionando apenas títulos com uma distância menor que 0,3.
DECLARE @v AS VECTOR(1536);
SELECT @v = title_vector
FROM [dbo].[wikipedia_articles]
WHERE title = 'Alan Turing';
SELECT id,
title,
VECTOR_DISTANCE('cosine', @v, title_vector) AS distance
FROM [dbo].[wikipedia_articles]
WHERE VECTOR_DISTANCE('cosine', @v, title_vector) < 0.3
ORDER BY distance;