Banco de dados vetorial: como funciona e quando usar em IA

Entenda embeddings, índices ANN e em que momento um banco tradicional deixa de dar conta da sua aplicação.

Por Marcos Guimarães25 set 2026
Banco de dados vetorial: como funciona e quando usar em IA

Um banco relacional responde perguntas do tipo "quais pedidos foram feitos em março".

Ele compara valores exatos, ordena colunas, aplica filtros.

Quando o pedido é "mostre os trechos da minha documentação que tratam de cancelamento de contrato", a busca exata trava: o usuário pode ter escrito "rescisão", "encerramento" ou "distrato", e nenhuma dessas palavras casa com a string original.

É aqui que entra a busca semântica.

Em vez de comparar texto com texto, você compara significado com significado, e o significado fica guardado em um vetor.

Um banco de dados vetorial é o sistema especializado em armazenar esses vetores e encontrar, entre milhões deles, os mais próximos de um outro vetor de consulta. ## O que é um embedding, na prática Um embedding é uma lista de números decimais que representa um conteúdo.

O modelo text-embedding-ada-002 da OpenAI, por exemplo, devolve 1.536 números para cada trecho de texto que você envia.

A versão text-embedding-3-large trabalha com 3.072 dimensões.

Cada posição dessa lista captura uma característica abstrata aprendida durante o treinamento: proximidade de tema, tipo de entidade, intenção.

O ponto central é a propriedade geométrica: conteúdos parecidos ficam em pontos próximos no espaço.

"Como cancelar meu plano" e "quero encerrar minha assinatura" tendem a gerar vetores com distância pequena entre si, mesmo sem nenhuma palavra em comum.

Medir essa proximidade exige uma métrica.

As três mais usadas são similaridade de cosseno, distância euclidiana e produto escalar.

A escolha depende de como o modelo de embedding foi treinado, e trocar de métrica sem reindexar os dados produz resultados errados. ## Por que um índice vetorial não é só uma coluna a mais Guardar 1.536 números por registro em um banco relacional é possível.

O colapso acontece na hora de buscar.

Comparar o vetor de consulta com cada uma das linhas para achar os mais próximos, no pior caso, significa ler a tabela inteira a cada pergunta.

Com 10 milhões de registros e centenas de consultas por minuto, essa abordagem fica inviável.

Bancos vetoriais resolvem isso com índices de vizinhos mais próximos aproximados, conhecidos pela sigla ANN (Approximate Nearest Neighbor).

Dois algoritmos aparecem em quase toda implementação: - **HNSW** (Hierarchical Navigable Small World): organiza os vetores em camadas de grafos e navega por atalhos até os vizinhos mais prováveis.

Costuma ter boa precisão e latência baixa, com custo de memória mais alto. - **IVF** (Inverted File Index): agrupa os vetores em clusters e faz a busca só nos clusters mais promissores.

Consome menos memória, mas exige ajuste do número de clusters.

O "aproximado" do nome é um trade-off consciente: você abre mão de garantir matematicamente o vizinho mais próximo em troca de velocidade.

Na prática, os resultados ficam muito próximos do ideal. ## Onde isso entra no RAG RAG (Retrieval Augmented Generation) virou o caso de uso que empurrou bancos vetoriais para o centro do stack de IA.

Funciona assim: o texto de uma base de conhecimento é dividido em pedaços menores, cada pedaço vira um embedding e vai para o banco vetorial.

Quando o usuário faz uma pergunta, o sistema transforma a pergunta em vetor, busca os pedaços mais parecidos e envia esses trechos junto com a pergunta para o modelo de linguagem responder.

Esse desenho resolve dois problemas conhecidos de LLMs.

O primeiro é o limite de janela de contexto: em vez de colar um manual inteiro no prompt, você entrega só os trechos relevantes.

O segundo é a alucinação: o modelo passa a responder com base em conteúdo real da empresa, e não apenas no que aprendeu no treinamento. ## Os tipos de solução que você vai encontrar O mercado se organiza em quatro famílias distintas. **Bancos vetoriais dedicados.** Foram construídos desde o início para esse tipo de dado.

Exemplos incluem Pinecone, Weaviate, Milvus e Qdrant.

Costumam entregar escalabilidade horizontal e filtros combinados com busca vetorial sem configuração extra. **Extensões em bancos tradicionais.** PostgreSQL tem a extensão pgvector, que adiciona tipos vetoriais e índices HNSW ou IVFFlat ao banco relacional.

A vantagem é operacional: uma equipe que já roda Postgres não precisa subir mais um serviço e pode fazer join entre a tabela de clientes e a base de embeddings. **Bibliotecas de índice em memória.** FAISS, do time de pesquisa da Meta, é usada dentro de aplicações para busca local em conjuntos que cabem na RAM.

Não é um servidor, é uma biblioteca. **Bancos de busca com suporte vetorial.** Elasticsearch e OpenSearch adicionaram campos de vetor denso para combinar busca por palavra-chave com busca semântica na mesma query.

Isso viabiliza a chamada busca híbrida, que costuma bater a busca puramente vetorial em relevância. ## Como escolher entre uma opção e outra Não existe resposta única, e o critério mais útil é o formato do seu problema.

Considere três eixos.

O primeiro é volume.

Alguns milhares de vetores cabem tranquilamente em pgvector ou em um índice FAISS local.

Dezenas de milhões de vetores com picos de tráfego pedem um banco dedicado, com réplicas e particionamento.

O segundo é filtragem.

Se toda consulta combina "vetores parecidos com X E cliente_id = 42", verifique como a solução lida com filtros pré e pós-busca.

Um filtro aplicado depois da busca vetorial pode devolver menos resultados do que você pediu.

O terceiro é acoplamento.

Se embeddings são um campo a mais dentro de uma aplicação que já tem dados relacionais, a extensão no banco que você já opera simplifica backup, transação e governança. ## Erros que aparecem em quase todo projeto O mais caro é trocar o modelo de embedding sem regerar os vetores.

Cada modelo produz um espaço próprio.

Misturar embeddings de dois modelos na mesma coleção gera resultados sem sentido.

O segundo é o tamanho do chunk.

Pedaços grandes demais diluem o sinal semântico e fazem o vetor representar vários assuntos ao mesmo tempo.

Pedaços pequenos demais perdem contexto.

Testar dois ou três tamanhos com um conjunto de perguntas reais é mais útil do que seguir um número mágico.

O terceiro é ignorar a atualização.

Um banco vetorial que não reflete o conteúdo mais recente entrega respostas desatualizadas com a mesma confiança com que entrega as corretas. ## Perguntas que aparecem sempre **Preciso de um banco vetorial para usar LLM?** Não.

Um prompt bem construído resolve muita coisa.

O banco vetorial entra quando você precisa consultar um acervo grande e específico que não cabe no contexto do modelo, ou quando o custo de injetar todo o conteúdo no prompt fica alto demais. **Dá para usar só pgvector em produção?** Sim, e muita equipe faz isso.

O limite costuma aparecer em escala, quando a latência ou o volume de escrita exigem particionamento e réplica que um banco dedicado entrega com menos trabalho de configuração. **Busca vetorial substitui a busca por palavra-chave?** Não.

Vetores erram em nomes próprios, códigos, siglas e termos raros.

A busca híbrida, que soma os dois sinais, costuma ser o melhor resultado em bases com jargão técnico ou nomes de produto.