O surgimento dos LLMs e da pesquisa semântica mudou completamente a forma como criamos sistemas de pesquisa, recomendação e recuperação. A pesquisa tradicional por palavras-chave — seja por meio deSQLLIKE, Lucene invertido ou índices de texto completo — está cada vez mais insuficiente quando os usuários esperam compreensão da linguagem natural.
É aqui que embeddings e bancos de dados vetoriais entram em cena.
O MongoDB evoluiu rapidamente nesse espaço com o Atlas Vector Search, oferecendo aos desenvolvedores um único banco de dados para documentos + metadados + vetores — tudo sob uma única API. Neste guia, vamos ver:
O que é o MongoDB.
O que são embeddings de consulta e por que são importantes.
O MongoDB é um banco de dados nosql orientado a documentos que guarda dados em documentosBSONflexíveis —BSON é uma notação de objeto JavaScript codificada em binário (JSON) — uma notação de objeto textual amplamente usada para transmitir e armazenar dados em aplicativos baseados na web. Diferente dos bancos de dados relacionais rígidos, o MongoDB simplifica a evolução do esquema e oferece:
Escalabilidade horizontal (sharding).
Estrutura de agregação rica.
Pesquisa de texto completo.
Pesquisa vetorial.
Coleções de séries temporais.
Flexibilidade do esquema.
O MongoDB Atlas — o serviço em nuvem totalmente gerenciado — amplia isso com:
Pesquisa Atlas (baseada em Lucene).
Pesquisa vetorial Atlas (busca semântica via indexação HNSW).
Escalonamento automático, backups, segurança e monitoramento.
O MongoDB virou uma escolha forte para cargas de trabalho de IA porque os vetores geralmente ficam junto com os metadados, e o MongoDB Atlas junta tudo isso em um só sistema.
O que são embeddings e por que usamos embeddings de consulta?
Quando você trabalha com pesquisa ou recuperação em aplicativos de IA, um dos primeiros conceitos que você encontra é embeddings.
Uma incorporação é basicamente uma representação numérica, uma longa lista de valores de ponto flutuante, que capta o significado de um trecho de texto (ou imagem, áudio, etc.). Em vez de olhar para as palavras exatas, os embeddings colocam o texto num espaço vetorial onde ideias parecidas ficam próximas umas das outras. Por exemplo, pense em três declarações diferentes de usuários:
Problema de cobrança
Erro de pagamento
Salário não creditado
Mesmo que as palavras sejam diferentes, todas as três falam de um problema financeiro. Um bom modelo de incorporação coloca esses textos próximos uns dos outros no espaço vetorial, permitindo que você os recupere com base no significado, em vez de palavras-chave.
Isso é super importante quando o usuário faz uma busca. O texto que eles digitam — “Por que meu salário está atrasado?” — também vira uma incorporação. Esse novo vetor é chamado deincorporação de consulta de vetor de representação ( ). Depois, você compara esse vetor de consulta com todas as incorporações armazenadas para descobrir quais documentos são parecidos em termos de significado. Quanto mais próximos os vetores estiverem, mais relevante será o resultado.
O MongoDB Atlas torna todo esse fluxo de trabalho super simples com o Atlas Vector Search. Depois de guardar seus documentos e suas incorporações em uma coleção MongoDB, o Atlas cria umíndice vetorial de similaridade () (usando HNSW nos bastidores) que pode recuperar rapidamente documentos parecidos em grande escala. Por exemplo, se você armazenar artigos de suporte com suas incorporações, uma consulta como...
query ="Why isn't my salary showing up this month?"
query_vec = get_embedding(query)# Explained in below examplesTecnologia
O MongoDB vai mostrar automaticamente os três principais artigos de suporte cujas incorporações são mais parecidas com a consulta, sem você precisar fazer nenhuma correspondência de palavras-chave ou pontuação manual.
Esse é o poder das incorporações no MongoDB Atlas: você armazena significado, não só texto, e faz consultas com base na intenção, não só em palavras. Essa mudança é o motivo pelo qual os embeddings se tornaram um elemento fundamental para a pesquisa semântica, os sistemas RAG, os assistentes de IA e as bases de conhecimento inteligentes.
Quando usar incorporações de consulta
Use embeddings quando quiser semelhança semântica, como:
Geração aumentada por recuperação (RAG)
Alimente seu LLM com contexto preciso a partir de sua base de conhecimento
Substitua a pesquisa por palavra-chave frágil
Chatbots que precisam de um entendimento profundo
Central de ajuda do portal
Suporte ao cliente
Recomendação de produto
“itens parecidos com este item”
Detecção de documentos ou duplicatas
Agrupamento
Agrupamento de tópicos
Quando a pesquisa por palavra-chave não dá certo
Dúvidas como “atraso no crédito salarial” versus “problema no processamento do pagamento”
Faça não use incorporações quando:
Você precisa de uma correspondência exata (IDs, números de fatura).
Seu conjunto de dados é bem pequeno (a pesquisa simples funciona).
Você precisa de filtragem/comparações numéricas (os metadados devem cuidar disso).
Como armazenar incorporações no MongoDB
O legal do MongoDB é que os embeddings se encaixam naturalmente nos documentos. Você só precisa armazená-los como matrizes de valores flutuantes.
Exemplo de esquema de documento
Aqui tá uma estrutura típica de documento:
{"_id":"uuid-123","text":"This is a sample document about MongoDB vector search.","embedding":[0.123,-0.241,0.998, ...],"tags":["mongodb","vector","ai"],"createdAt":"2025-01-01T10:20:00Z"}Tecnologia
Coisas importantes pra lembrar:
Cada incorporação em uma coleção precisa ter a mesma dimensionalidade.
Idealmente, os embeddings devem ser armazenados como float32 (o MongoDB vai converter internamente para float64).
Se seus documentos forem longos, divida-os antes de incorporá-los.
Guarde os metadados separadamente — tags, categoria, URL, carimbos de data/hora, etc. Isso torna a pesquisa híbrida super eficiente.
Criando um índice vetorial no MongoDB (etapa crítica)
Antes de guardar ou consultar incorporações, você precisa criar um índice de pesquisa vetorial no MongoDB Atlas.
No MongoDB Atlas, vá para:Atlas → Banco de dados → Coleções → Pesquisa → Criar índice de pesquisa
Esse índice alimenta todas as consultas de pesquisa vetorial.
O MongoDB tem recursos nativos de pesquisa vetorial com suporte para:
Similaridade coseno.
Distância euclidiana.
Pontuação dotProduct.
Escolha com base no seu modelo de incorporação, mas como saber o que escolher? Vamos mergulhar fundo.
Similaridade coseno
O que ele mede
Mede o quanto dois vetores estãoalinhados — ou seja, o ângulo entre eles. Ignora a magnitude e foca só na direção.
Intuição
Se dois vetores apontam na mesma direção → semelhança próxima a 1
Direções opostas → –1
Ortogonal (não relacionado) → 0
Quando usar
Use o cosseno quando a magnitude não importa, apenas o padrão ou conceito que está sendo expresso.
Usos comuns
Incorporação de texto/NLP
Pesquisa semântica
Sistemas de recomendação baseados no significado, não na escala
O coseno é a opção padrão mais segura para a maioria dos modelos de incorporação.
distância euclidiana
O que ele mede
Mede a distância em linha reta entre dois vetores no espaço.
Intuição
Pequena distância → os vetores são parecidos
Grande distância → os vetores estão bem afastados
Quando usar
Use o Euclidiano quando valores absolutos e magnitudes importarem, e não apenas a direção.
Usos comuns
Incorporação de imagens
Medições físicas/dados do sensor
Algoritmos de agrupamento como K-means (que usa internamente o método euclidiano)
Se seus dados naturalmente se encaixam em um espaço geométrico (por exemplo, intensidades de pixels), a geometria euclidiana geralmente faz mais sentido.
Produto escalar
O que ele mede
Ele mede uma combinação de similaridade e magnitude.
Matematicamente: dot(u, v) = |u| × |v| × cos(θ)
Intuição
Maior magnitude E alinhamento → maior pontuação
Sensível ao comprimento do vetor
Não normalizado automaticamente
Quando usar
Use o produto escalar quando você quiser que vetores mais longos tenham mais influência ou quando o modelo de incorporação for treinado com o produto escalar em mente.
Usos comuns
Incorporações de modelos de linguagem grandes que assumem produto interno pontuação
Camadas de similaridade da rede neural
Modelos de recomendação em que a “força” das características é importante
Regra prática rápida
Métrico
Ótimo para
Evite quando
Cosseno
Texto, pesquisa semântica, incorporações gerais
A magnitude é importante
Euclidiano
Imagens, características geométricas, agrupamento
Os dados têm escala arbitrária
Produto escalar
Modelos treinados com produto interno, recsys
As magnitudes distorcem a semelhança
Gerar, armazenar e consultar incorporações no MongoDB (tutorial em Python)
Vamos ver isso como se estivéssemos montando um sistema de verdade.
Usando o OpenAI (troque por qualquer provedor de incorporação que você preferir):
import os
from openai import OpenAI
os.environ["OPENAI_API_KEY"]="your_api_key_here"
client = OpenAI()defget_embedding(text:str):
response = client.embeddings.create(
model="text-embedding-3-small",input=text
)return response.data[0].embeddingTecnologia
Conecte-se ao MongoDB e insira documentos
Usando o OpenAI (troque por qualquer provedor de incorporação que você preferir):
from pymongo import MongoClient
import uuid
mongo = MongoClient("<MONGODB_ATLAS_URI>")
db = mongo["vector_db"]
collection = db["documents"]
text ="This is a sample document about MongoDB vector search."
embedding = get_embedding(text)
document ={"_id":str(uuid.uuid4()),"text": text,"embedding": embedding,"tags":["mongodb","search"],}
collection.insert_one(document)print("Document inserted successfully!")Tecnologia
Agora, seus dados estão prontos para a pesquisa semântica.
Consultando incorporações no MongoDB
Agora vem a parte divertida: recuperar documentos parecidos usando uma consulta vetorial. O MongoDB usa $vectorSearch em um pipeline de agregação.
Gerar vetor de consulta
from pymongo import MongoClient
query ="How does MongoDB handle semantic search?"
query_vec = get_embedding(query)Tecnologia
Fazer uma busca vetorial (embeddings de consulta)
results = collection.aggregate([{"$vectorSearch":{"index":"vector_index","path":"embedding","queryVector": query_vec,"numCandidates":100,"limit":5,"similarity":"cosine"}},{"$project":{"text":1,"score":{"$meta":"vectorSearchScore"}}}])for r in results:print(r)Tecnologia
Isso mostra os cinco documentos mais parecidos em termos de significado.
Isso é super útil para pipelines RAG onde você quer fazer uma busca semântica.
Explicação passo a passo da consulta acima
$vectorSearch → Encontra documentos cuja campo de incorporação esteja mais próximo de queryVector usando a métrica de similaridade especificada
numCandidates → Quantos resultados possíveis o mecanismo deve considerar antes de escolher os melhores resultados
limite → Número de resultados finais semelhantes a retornar
$project → Mostra o texto original mais um campo especial chamado score
O que é o campo de pontuação?
A Pesquisa Vetorial do MongoDB Atlas retorna um campo de metadados especial,"score": {"$meta": "vectorSearchScore"}, que informa quão parecido um vetor armazenado é ao seu vetor de consulta.
O significado da pontuação depende da métrica de similaridade que você escolher, como explicado abaixo:
Métrica de similaridade
O que significa a pontuação
Pontuação mais alta = mais parecido?
Intervalo de pontuação
cosseno
Semelhança angular entre vetores
Sim
–1 a +1
euclidiano
Distância L2 negativa
Não — mais perto de 0 = mais parecido
–∞ a 0
dotProduct
Alinhamento da magnitude do vetor
Sim
–∞ a +∞
Melhores práticas
Divida documentos longos (300–500 tokens cada): Melhor relevância + evita a incorporação de blobs longos
Armazene os metadados separadamente: Ajuda a filtrar e classificar
Geração de incorporação em lote: Melhora o rendimento e reduz o custo do modelo
Use incorporações float32 no seu modelo: O MongoDB usa float64 internamente, mas aceita matrizes float32.
Indexe só o campo vetorial: Campos extras no índice aumentam a memória e a latência
Erros comuns a evitar
Problema
Por que isso acontece
Incompatibilidade de dimensões
Dimensão do vetor de consulta ≠ dimensão do índice
Resultados irrelevantes
Usando modelos diferentes para armazenamento e consulta
Pesquisa lenta
Muitos candidatos ou requisitos de grandes clusters
Documento muito grande
Limite de 16 MB para documentos
Métrica de similaridade errada
Modelo treinado para cosseno, mas usando produto escalar
Considerações finais
Embeddings e pesquisa semântica agora são essenciais para os produtos modernos de IA. Se você está criando um chatbot, um pipeline RAG, um mecanismo de recomendação ou uma camada de pesquisa inteligente, precisa de uma maneira confiável de armazenar vetores e consultá-los com eficiência.
O MongoDB oferece uma plataforma unificada onde:
Seu texto vive.
Seus metadados continuam vivos.
Suas incorporações estão ativas.
Sua pesquisa vetorial está rolando.
Tudo se adapta junto.
Isso evita a confusão de ter que lidar com vários bancos de dados e te deixa focar em desenvolver os recursos do produto, não a infraestrutura.
Perguntas frequentes
Preciso de um banco de dados vetorial separado se usar o MongoDB para embeddings?⌄
Não. O MongoDB Atlas Vector Search já vem integrado, então você pode guardar documentos, metadados e vetores no mesmo lugar sem precisar usar um banco de dados vetorial separado, tipo o Pinecone ou o Milvus.
Que dimensionalidade de incorporação devo usar no MongoDB?⌄
Use a dimensionalidade que o seu modelo de incorporação oferece (por exemplo, 768 ou 1536). Todos os documentos de uma coleção precisam ter a mesma dimensão do índice vetorial.
O MongoDB consegue fazer uma busca híbrida (metadados + busca vetorial)?⌄
Você pode filtrar com $match e depois aplicar $vectorSearch no mesmo pipeline de agregação — ideal para RAG e sistemas de recomendação.
O MongoDB é legal para trabalhos de busca vetorial em grande escala?⌄
Sim. O MongoDB usa indexação baseada em HNSW no Atlas Search, que funciona bem para milhões de documentos. A taxa de transferência depende do tamanho do índice, do nível do cluster e dos padrões de carga de trabalho.
Posso usar qualquer modelo de incorporação com o MongoDB?⌄
Com certeza. MongoDB is model-agnostic. Você pode usar OpenAI, HuggingFace, Cohere, modelos locais ou embeddings personalizados, desde que as dimensões correspondam ao índice.
As incorporações de vetores são representações numéricas de palavras ou frases que capturam seus significados e relacionamentos, ajudando os modelos de machine learning a entender o texto com mais eficiência.
Um guia completo com os melhores bancos de dados vetoriais. Domine o armazenamento de dados de alta dimensão, decifrar informações não estruturadas e aproveitar as incorporações vetoriais para aplicações de IA.
Descubra para que servem os bancos de dados NoSQL, por que os cientistas de dados os utilizam e uma lista dos melhores bancos de dados NoSQL disponíveis.
Descubra como melhorar o PostgreSQL com recursos de pesquisa vetorial usando o pgvector. Este tutorial te mostra como instalar, usar as funções básicas e integrar com ferramentas de IA.
Explore nosso guia sobre como usar a API OpenAI para criar incorporações de texto. Descubra suas aplicações na classificação de textos, recuperação de informações e detecção de similaridade semântica.
O surgimento dos LLMs e da pesquisa semântica mudou completamente a forma como criamos sistemas de pesquisa, recomendação e recuperação. A pesquisa tradicional por palavras-chave — seja por meio deSQL LIKE, Lucene invertido ou índices de texto completo — está cada vez mais insuficiente quando os usuários esperam compreensão da linguagem natural.
É aqui que embeddings e bancos de dados vetoriais entram em cena.
O MongoDB evoluiu rapidamente nesse espaço com o Atlas Vector Search, oferecendo aos desenvolvedores um único banco de dados para documentos + metadados + vetores — tudo sob uma única API. Neste guia, vamos ver:
Este tutorial é prático e pronto para integrar na sua geração aumentada por recuperação (RAG), pesquisa por similaridade ou pipeline de recomendação.
O que é o MongoDB?
O MongoDB é um banco de dados nosql orientado a documentos que guarda dados em documentosBSONflexíveis —BSON é uma notação de objeto JavaScript codificada em binário (JSON) — uma notação de objeto textual amplamente usada para transmitir e armazenar dados em aplicativos baseados na web. Diferente dos bancos de dados relacionais rígidos, o MongoDB simplifica a evolução do esquema e oferece:
O MongoDB Atlas — o serviço em nuvem totalmente gerenciado — amplia isso com:
O MongoDB virou uma escolha forte para cargas de trabalho de IA porque os vetores geralmente ficam junto com os metadados, e o MongoDB Atlas junta tudo isso em um só sistema.
O que são embeddings e por que usamos embeddings de consulta?
Quando você trabalha com pesquisa ou recuperação em aplicativos de IA, um dos primeiros conceitos que você encontra é embeddings.
Uma incorporação é basicamente uma representação numérica, uma longa lista de valores de ponto flutuante, que capta o significado de um trecho de texto (ou imagem, áudio, etc.). Em vez de olhar para as palavras exatas, os embeddings colocam o texto num espaço vetorial onde ideias parecidas ficam próximas umas das outras. Por exemplo, pense em três declarações diferentes de usuários:
Mesmo que as palavras sejam diferentes, todas as três falam de um problema financeiro. Um bom modelo de incorporação coloca esses textos próximos uns dos outros no espaço vetorial, permitindo que você os recupere com base no significado, em vez de palavras-chave.
Isso é super importante quando o usuário faz uma busca. O texto que eles digitam — “Por que meu salário está atrasado?” — também vira uma incorporação. Esse novo vetor é chamado deincorporação de consulta de vetor de representação ( ). Depois, você compara esse vetor de consulta com todas as incorporações armazenadas para descobrir quais documentos são parecidos em termos de significado. Quanto mais próximos os vetores estiverem, mais relevante será o resultado.
O MongoDB Atlas torna todo esse fluxo de trabalho super simples com o Atlas Vector Search. Depois de guardar seus documentos e suas incorporações em uma coleção MongoDB, o Atlas cria umíndice vetorial de similaridade ( ) (usando HNSW nos bastidores) que pode recuperar rapidamente documentos parecidos em grande escala. Por exemplo, se você armazenar artigos de suporte com suas incorporações, uma consulta como...
... pode ser usado diretamente no MongoDB:
O MongoDB vai mostrar automaticamente os três principais artigos de suporte cujas incorporações são mais parecidas com a consulta, sem você precisar fazer nenhuma correspondência de palavras-chave ou pontuação manual.
Esse é o poder das incorporações no MongoDB Atlas: você armazena significado, não só texto, e faz consultas com base na intenção, não só em palavras. Essa mudança é o motivo pelo qual os embeddings se tornaram um elemento fundamental para a pesquisa semântica, os sistemas RAG, os assistentes de IA e as bases de conhecimento inteligentes.
Quando usar incorporações de consulta
Use embeddings quando quiser semelhança semântica, como:
Geração aumentada por recuperação (RAG)
Chatbots que precisam de um entendimento profundo
Recomendação de produto
Detecção de documentos ou duplicatas
Quando a pesquisa por palavra-chave não dá certo
Faça não use incorporações quando:
Como armazenar incorporações no MongoDB
O legal do MongoDB é que os embeddings se encaixam naturalmente nos documentos. Você só precisa armazená-los como matrizes de valores flutuantes.
Exemplo de esquema de documento
Aqui tá uma estrutura típica de documento:
Coisas importantes pra lembrar:
Criando um índice vetorial no MongoDB (etapa crítica)
Antes de guardar ou consultar incorporações, você precisa criar um índice de pesquisa vetorial no MongoDB Atlas.
No MongoDB Atlas, vá para: Atlas → Banco de dados → Coleções → Pesquisa → Criar índice de pesquisa
Use uma definição como:
This tells MongoDB:
Esse índice alimenta todas as consultas de pesquisa vetorial.
O MongoDB tem recursos nativos de pesquisa vetorial com suporte para:
Escolha com base no seu modelo de incorporação, mas como saber o que escolher? Vamos mergulhar fundo.
Similaridade coseno
O que ele mede
Mede o quanto dois vetores estãoalinhados — ou seja, o ângulo entre eles. Ignora a magnitude e foca só na direção.
Intuição
Quando usar
Use o cosseno quando a magnitude não importa, apenas o padrão ou conceito que está sendo expresso.
Usos comuns
O coseno é a opção padrão mais segura para a maioria dos modelos de incorporação.
distância euclidiana
O que ele mede
Mede a distância em linha reta entre dois vetores no espaço.
Intuição
Quando usar
Use o Euclidiano quando valores absolutos e magnitudes importarem, e não apenas a direção.
Usos comuns
Se seus dados naturalmente se encaixam em um espaço geométrico (por exemplo, intensidades de pixels), a geometria euclidiana geralmente faz mais sentido.
Produto escalar
O que ele mede
Ele mede uma combinação de similaridade e magnitude.
Matematicamente: dot(u, v) = |u| × |v| × cos(θ)
Intuição
Quando usar
Use o produto escalar quando você quiser que vetores mais longos tenham mais influência ou quando o modelo de incorporação for treinado com o produto escalar em mente.
Usos comuns
Regra prática rápida
Métrico
Ótimo para
Evite quando
Cosseno
Texto, pesquisa semântica, incorporações gerais
A magnitude é importante
Euclidiano
Imagens, características geométricas, agrupamento
Os dados têm escala arbitrária
Produto escalar
Modelos treinados com produto interno, recsys
As magnitudes distorcem a semelhança
Gerar, armazenar e consultar incorporações no MongoDB (tutorial em Python)
Vamos ver isso como se estivéssemos montando um sistema de verdade.
Instalar dependências
Gerar incorporações
Usando o OpenAI (troque por qualquer provedor de incorporação que você preferir):
Conecte-se ao MongoDB e insira documentos
Usando o OpenAI (troque por qualquer provedor de incorporação que você preferir):
Agora, seus dados estão prontos para a pesquisa semântica.
Consultando incorporações no MongoDB
Agora vem a parte divertida: recuperar documentos parecidos usando uma consulta vetorial. O MongoDB usa $vectorSearch em um pipeline de agregação.
Gerar vetor de consulta
Fazer uma busca vetorial (embeddings de consulta)
Isso mostra os cinco documentos mais parecidos em termos de significado.
Isso é super útil para pipelines RAG onde você quer fazer uma busca semântica.
Explicação passo a passo da consulta acima
$vectorSearch → Encontra documentos cuja campo de incorporação esteja mais próximo de queryVector usando a métrica de similaridade especificada
numCandidates → Quantos resultados possíveis o mecanismo deve considerar antes de escolher os melhores resultados
limite → Número de resultados finais semelhantes a retornar
$project → Mostra o texto original mais um campo especial chamado score
O que é o campo de pontuação?
A Pesquisa Vetorial do MongoDB Atlas retorna um campo de metadados especial, "score": {"$meta": "vectorSearchScore"}, que informa quão parecido um vetor armazenado é ao seu vetor de consulta.
O significado da pontuação depende da métrica de similaridade que você escolher, como explicado abaixo:
Métrica de similaridade
O que significa a pontuação
Pontuação mais alta = mais parecido?
Intervalo de pontuação
cosseno
Semelhança angular entre vetores
Sim
–1 a +1
euclidiano
Distância L2 negativa
Não — mais perto de 0 = mais parecido
–∞ a 0
dotProduct
Alinhamento da magnitude do vetor
Sim
–∞ a +∞
Melhores práticas
Erros comuns a evitar
Problema
Por que isso acontece
Incompatibilidade de dimensões
Dimensão do vetor de consulta ≠ dimensão do índice
Resultados irrelevantes
Usando modelos diferentes para armazenamento e consulta
Pesquisa lenta
Muitos candidatos ou requisitos de grandes clusters
Documento muito grande
Limite de 16 MB para documentos
Métrica de similaridade errada
Modelo treinado para cosseno, mas usando produto escalar
Considerações finais
Embeddings e pesquisa semântica agora são essenciais para os produtos modernos de IA. Se você está criando um chatbot, um pipeline RAG, um mecanismo de recomendação ou uma camada de pesquisa inteligente, precisa de uma maneira confiável de armazenar vetores e consultá-los com eficiência.
O MongoDB oferece uma plataforma unificada onde:
Isso evita a confusão de ter que lidar com vários bancos de dados e te deixa focar em desenvolver os recursos do produto, não a infraestrutura.