Pular para o conteúdo

Arquitetura de software · Dados · 7 min de leitura

Busca de texto: índice invertido, relevância e busca híbrida

Como mecanismos de busca encontram documentos em milissegundos: tokenização, índice invertido, ranking por relevância e a combinação com vetores.

Documentos → AnalisadorAnalisador → Índice invertido: indexaindexaConsulta → Ranking: mesmo analisadormesmo analisadorRanking → Índice invertido: busca termosbusca termosRanking → ResultadosDocumentosDocumentosAnalisador — tokens, radicaisAnalisadortokens, radicaisÍndice invertido — termo → documentosÍndice invertidotermo → documentosConsulta — “tênis corrida”Consulta“tênis corrida”Ranking — BM25 + sinaisRankingBM25 + sinaisResultados — ordenadosResultadosordenados

Arraste para o lado para ver o diagrama inteiro.

Documentos e consultas passam pelo mesmo analisador, para que “Corridas” e “corrida” se encontrem.

O índice invertido

Em vez de procurar a palavra em cada documento, o mecanismo guarda, para cada termo, a lista de documentos (e posições) onde ele aparece — como o índice remissivo de um livro. Uma consulta vira a interseção ou união dessas listas. Antes, o analisador quebra o texto em tokens, passa para minúsculas, remove acentos e reduz palavras ao radical.

Relevância

O BM25 pontua cada documento: termos raros pesam mais, repetição ajuda com retorno decrescente, documentos longos são normalizados. Na prática somam-se outros sinais — popularidade, recência, cliques — e um reordenamento final por modelo.

Na arquitetura

  • O banco principal continua sendo a fonte da verdade; o índice de busca é uma cópia atualizada por eventos (consistência eventual).
  • Para pouca escala, a busca de texto do PostgreSQL resolve sem outra infraestrutura.
  • Busca híbrida: combinar BM25 (palavras exatas, códigos, nomes) com busca vetorial (sinônimos e significado) dá os melhores resultados — é o que sistemas de RAG fazem.

Em resumo

Referências

Continue aprendendo

Todos os temas de arquitetura de software →