Este repositório contém um projeto desenvolvido para simular um algoritmo de indexação de documentos, similar ao utilizado pelo Google. O programa é capaz de identificar ocorrências de termos em arquivos de texto (formato .txt), oferecendo funcionalidades de gerenciamento de arquivos e busca.
O Indexing Algorithm é dividido em dois módulos principais:
-
Módulo de Gerenciamento de Arquivos:
- Permite anexar arquivos de texto (formato
.txt) ao sistema. - Garante o gerenciamento eficiente dos arquivos adicionados.
- Permite anexar arquivos de texto (formato
-
Módulo de Buscas:
- Realiza operações de busca nos arquivos anexados.
- Retorna as ocorrências dos termos pesquisados.
Nota: Este projeto não realiza análise de significados ou busca por sinônimos.
Durante o desenvolvimento deste projeto, as seguintes habilidades foram exercitadas:
- Manipulação de Pilhas;
- Manipulação de Deque;
- Manipulação de Nós e Listas Ligadas;
- Manipulação de Listas Duplamente Ligadas.
A estrutura do projeto está organizada da seguinte forma:
📁 statics/
├── arquivo_teste.csv # Arquivo CSV de exemplo
├── arquivo_teste.txt # Arquivo TXT de exemplo
├── nome_pedro.txt # Arquivo TXT de exemplo
├── novo_paradigma_globalizado-min.txt
└── novo_paradigma_globalizado.txt # Arquivos TXT adicionais
📁 tests/ # Testes automatizados
└── priority_queue/
├── __init__.py
└── test_priority_queue.py # Testes para filas de prioridade (não implementado)
📁 ting_file_management/
├── __init__.py
├── abstract_queue.py # Estrutura de fila abstrata (não implementado)
├── file_management.py # Gerenciamento de arquivos
├── file_process.py # Processamento de arquivos
├── priority_queue.py # Implementação de filas de prioridade
└── queue.py # Implementação de filas
📁 ting_word_searches/
├── __init__.py
└── word_search.py # Funções de busca em arquivos
-
Clone este repositório:
git clone https://github.com/vicentevendramin/indexing-algorithm.git cd indexing-algorithm -
Crie e ative um ambiente virtual:
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
-
Instale as dependências:
pip install -r requirements.txt # Production pip install -r dev-requirements.txt # Development
-
Execute os testes para verificar o funcionamento:
pytest # Development