🔍 Motor de Busca

Projeto de recuperação de informação

Do documento bruto ao resultado relevante.

Este projeto implementa um motor de busca em Python e Flask para demonstrar como estruturas de dados, ranqueamento e uma interface web trabalham juntas.

Fluxo de uma busca

  1. Pré-processamento: normaliza o texto e remove stopwords em português.
  2. Índice invertido: localiza rapidamente os documentos que contêm cada termo.
  3. Ranqueamento: usa TF-IDF normalizado e similaridade do cosseno.
  4. Apresentação: mostra trechos, termos destacados e links para os documentos.

Decisões de engenharia

Trie para autocomplete

Busca sugestões por prefixo enquanto a pessoa digita, sem percorrer todos os termos do índice.

JSON para persistência

O índice é legível, não executa código ao ser carregado e a Trie é reconstruída em memória.

Interface e API

A interface HTML e a API JSON compartilham a mesma regra de ranqueamento para evitar resultados inconsistentes.

Qualidade contínua

Testes cobrem o motor e as rotas Flask, enquanto o GitHub Actions os executa a cada alteração enviada.

O que este projeto demonstra

Modelagem de dados, algoritmos de busca, normalização de texto, desenvolvimento web, API REST, testes automatizados e integração contínua.

Experimentar a busca