Sua empresa tem uma base de conhecimento. Ou um catálogo de produtos. Ou uma biblioteca de documentos internos.
E alguém precisa achar alguma coisa nessa base todos os dias.
Agora uma pergunta honesta: a busca funciona bem?
Se a resposta for “depende” ou “mais ou menos” ou “as pessoas sabem que precisam usar as palavras certas” — você tem um problema de busca. E provavelmente está perdendo produtividade, oportunidades de venda ou satisfação do cliente sem perceber.
O problema fundamental da busca por palavra-chave
A busca tradicional (chamada de busca lexical ou BM25) funciona comparando palavras. Se o usuário digita “notebook resistente para uso externo” e o produto se chama “laptop ultrarrígido para ambientes hostis” — a busca não vai encontrar.
Isso parece um problema pequeno, mas se escala para:
- Um e-commerce onde clientes não sabem a nomenclatura exata dos produtos
- Uma base de conhecimento onde diferentes times usam terminologias diferentes
- Um sistema de busca de contratos onde cada jurista descreve a mesma cláusula de forma diferente
- Um help center multilíngue onde clientes escrevem em vários idiomas
Em todos esses casos, busca por palavra-chave falha sistematicamente com consultas em linguagem natural.
Como funciona a busca semântica
A busca semântica usa embeddings vetoriais — representações matemáticas do significado de textos.
O processo:
1. Indexação (acontece uma vez, depois é incremental)
- Cada documento ou chunk é convertido em um vetor numérico de alta dimensão (tipicamente 1536 dimensões com o modelo da OpenAI)
- Esse vetor captura o significado do texto, não apenas as palavras
- Os vetores são armazenados em um banco de dados vetorial (pgvector, Pinecone, Qdrant, etc.)
2. Busca (acontece em tempo real)
- A query do usuário também é convertida em vetor usando o mesmo modelo
- O sistema calcula a similaridade cosseno entre o vetor da query e todos os vetores indexados
- Os documentos com maior similaridade são retornados como resultados
Por que funciona para sinônimos e linguagem natural?
Modelos de embedding são treinados em enormes corpora de texto onde aprendem que “laptop” e “notebook” aparecem em contextos similares — portanto têm vetores próximos. Que “temperatura abaixo de zero” e “frio extremo” são semanticamente relacionados.
Dois textos com palavras completamente diferentes podem ter vetores muito próximos se falam do mesmo assunto.
Busca Híbrida: o melhor dos dois mundos
Na prática, os melhores sistemas em produção usam busca híbrida: uma combinação de busca semântica e busca lexical.
Por quê? Porque cada uma tem vantagens diferentes:
| Busca Lexical (BM25) | Busca Semântica | |
|---|---|---|
| Melhor em | Termos técnicos exatos, siglas, códigos de produto | Linguagem natural, sinônimos, conceitos |
| Pior em | Variações semânticas, sinônimos | Correspondência exata de strings raras |
| Latência | Muito baixa (~1ms) | Média (~10-50ms) |
| Custo | Muito baixo | Médio (custo de embedding) |
A busca híbrida (como implementada no Elasticsearch com KNN, ou no PostgreSQL com pgvector + FTS) combina os scores dos dois métodos com um peso configurável — e geralmente supera ambos individualmente.
Reranking: o refinamento final
Após a busca semântica retornar os top-K resultados, um passo adicional de reranking pode melhorar ainda mais a relevância.
Modelos de reranking (como o Cohere Rerank ou cross-encoders da Hugging Face) analisam cada par query-resultado de forma mais sofisticada — mas são lentos para analisar todos os documentos. Por isso o fluxo ideal é:
Query → Busca semântica (top 20-50 resultados rápidos)
→ Reranker (refina para top 3-5)
→ LLM (gera resposta com base nesses 3-5)
Esse pipeline com RAG é o estado da arte para sistemas de Q&A e assistentes de conhecimento.
Quando usar busca semântica?
✅ Casos de uso ideais
Base de conhecimento interna Funcionários procurando políticas, processos, documentos históricos. A linguagem varia muito entre departamentos — busca semântica elimina a frustração.
Help center e suporte ao cliente Clientes descrevem problemas com palavras próprias. Um motor semântico encontra o artigo certo mesmo que o cliente não use os termos técnicos corretos.
Catálogo de produtos B2B Compradores descrevem o que precisam em linguagem natural. A busca semântica mapeia para os produtos corretos, incluindo sinônimos e especificações implícitas.
Sistema de busca de contratos e documentos legais Advogados buscam por conceito (“cláusula de não concorrência com prazo superior a 2 anos”) não por palavras exatas.
Plataformas de recrutamento Match entre descrição de vagas e currículos com base em semântica, não palavras-chave.
E-commerce de alta variedade Clientes usam linguagem cotidiana (“camiseta que não amassa na mala”) que não combina com títulos de produto (“camiseta dry-fit sem amassado”).
❌ Quando não é necessário
- Volume muito baixo (menos de 1.000 documentos) — uma busca simples funciona bem
- Buscas por ID, código ou campos exatos — use busca SQL tradicional
- Dados numéricos ou tabulares — sem ganho com embeddings
- Budget muito restrito — a adição de embeddings tem custo; se a busca por palavra-chave funciona bem o suficiente, não mude
A stack técnica: o que usamos em produção
Para projetos que desenvolvemos, a stack mais confiável hoje:
Embedding model:
text-embedding-3-large(OpenAI) — melhor qualidade geral, custo de $0.13/1M tokenstext-embedding-3-small(OpenAI) — bom equilíbrio custo/qualidademultilingual-e5-large(Hugging Face, open-source) — para quem prefere sem custo por token
Vector store:
- pgvector (extensão do PostgreSQL) — ideal para quem já usa Postgres, zero infraestrutura adicional, excelente para até ~10M vetores
- Pinecone — managed service, fácil de começar, escalável
- Qdrant — open-source, auto-hospedável, boa performance
Reranking:
cohere.rerank-v3.5— melhor qualidade no mercadoBAAI/bge-reranker-large— open-source, excelente qualidade
Integração:
- LangChain ou LlamaIndex para orquestrar o pipeline
O impacto que você pode esperar
Com base nos projetos que implementamos, estes são os impactos típicos ao substituir busca por palavra-chave por busca semântica:
- Taxa de “zero resultados”: redução de 15-25% para 1-3%
- Taxa de conversão pós-busca: aumento de 20-50%
- Tempo para encontrar informação: redução de 60-80%
- Satisfação do usuário com busca: aumento médio de 2.1 pontos em escala de 5
Esses números variam muito conforme o caso de uso — mas a direção é consistente.
Como implementar: os passos
- Defina o corpus — quais documentos/itens serão indexados
- Prepare os dados — limpe, estruture, defina os campos relevantes
- Escolha o modelo de embedding — balanceando qualidade, latência e custo
- Configure o vector store — tipicamente pgvector se já tem PostgreSQL
- Crie o pipeline de ingestão — que atualiza automaticamente quando documentos mudam
- Implemente a busca — com lógica de scoring e, opcionalmente, reranking
- Meça e itere — rastreie zero-result queries, cliques, feedback
Para a maioria das empresas, um sistema de busca semântica funcional pode ser implementado em 2 a 4 semanas.
O retorno em produtividade e satisfação do usuário costuma pagar o investimento em menos de 90 dias.