Roadmap: Objetivo: Produzir uma search engine que trabalhe com coleções de documentos na escala de gigabytes
- Queries Booleanas (term frequency) - Objetivo Inicial
- Indices (lexicon + inverted file) a. In-memory (hashtable + linked list) b. Disk + Memory (hashtable + separated inverted files) c. Disk SPIMI (hashtable + b+tree + inverted file)
- Coleções de documentos para teste e suporte a arquivos (coleções de documentos em disco e suporte a DOC/DOCX/TXT/PDF)
- Steming e stop swords (analise de simbolos e termos do lexicon)
- Logs a. Tempo de indexação b. Tempo de pesquisa c. Estatísticas da coleção (tamanho medio do documento, quantidade de documentos, quantidade de termos no lexicon, etc) d. Queries pesquisadas e resultados ordenados
- Queries Rankeadas a. TF b. TF-IDF c. BM25 d. BM25-OKAPI e. Pivoted Length normalization
- Ajustes de performance a. Linearidade vs Concorrência (ajustes nos algoritmos para uso de múltiplas threads) b. Alocação de memória (gestão de memória e time de alocação de recursos) c. Desempenho e arquitetura de discos e avaliação do impacto nos algoritmos de indexação (SATA vs SSD - sem array de discos) d. Fragmentação de discos e. Add cache for queries results
- Aquisição de documentos e incremento da coleção de testes (TCCs da POLI) a. Repositórios e bancos de dados de documentos b. Crawler c. Robots.txt d. Aprovação de documentos (candidatos vs documentos importantes)
- Interfaces para o sistema a. Aplicativos para indexação e testes de queries padrão b. Interfaces web para acesso a engine de pesquisa pelo usuário