GithubHelp home page GithubHelp logo

ifsearch's Introduction

IFSearch

O IFSearch é uma ferramenta de busca em documentos do IFG que são publicados oficialmente no Boletim de Serviços. Em virtude da dificuldade na busca por palavras em cada um dos documentos disponíveis, este sistema oferece uma interface a partir da qual os usuários poderão simplesmente digitar um termo de interesse como nomes próprios (pessoas, empresas,...), datas e quaisquer outras palavras.

Para instruções de como baixar os arquivos necessários à instalação do sistema a partir do Git, siga os passos descritos no link abaixo:

https://docs.github.com/pt/github/creating-cloning-and-archiving-repositories/cloning-a-repository

Windows

Faça o download e instalação do Docker Compose seguindo as instruções abaixo:

https://docs.docker.com/compose/install/

Linux

Usando o APT

Faça o download e instalação do Docker Compose usando o gerenciador de instalação de pacotes, como o apt:

$ sudo apt install docker-compose

Obs.: O Docker Compose exige que a versão do Python seja a 3.6 or superior.

Para verificar se a instalação foi bem-sucedida, execute:

$ docker-compose --version

Você deverá visualizar um resultado parecido com este:

Saída:

docker-compose version 1.26.0, build 8a1c60f6

Docker Compose

Realize o clone do repositório:

$ git clone https://github.com/gassis/ifsearch.git

$ cd ifsearch

A partir da pasta criada acima, execute:

~ifsearch$ cd crawler

~/ifsearch/crawler$ docker-compose up

Obs.: Como o índice de busca é construído na primeira execução do aplicativo, é necessário que a aplicação fique em execução ininterrupta por um prazo de aproximadamente 24 horas, dependendo do equipamento.

Após a instalação, acesse a ferramenta por meio da seguinte URL, em seu próprio browser:

http://localhost:5000

Obs.: Além da porta 5000, o sistema também irá demandar o uso das portas 9200 e 9300 (Elasticsearch).

Observações importantes

  • Para realizar o agendamento de execução do processo de indexação, recomendamos a utilização do utilitário CRON. Exemplo de entrada no crontab:

    #* * * * * docker exec -it crawler_monitor python monitor.py

  • É possível também a execução do script de indexação de forma direta, caso seja necessário a reindexação de algum período do ano. Exemplo de comando para execução da (re)indexação do ano de 2015:

    ~/ifsearch/crawler$ docker exec -it crawler_monitor python monitor.py -y 2015

  • Caso o usuário deseje especificar um ou mais meses específicos de um certo ano, como por exemplo, os meses de março e abril de 2020:

    ~/ifsearch/crawler$ docker exec -it crawler_monitor python monitor.py -y 2020 -m março,abril

  • Segue abaixo a sintaxe para o comando monitor.py. É importante ressaltar que para se definir mais de um ano ou mês, basta inserir listas com os itens separados por vírgula (sem espaços):

    monitor.py -y <year> -m <month>

    • Exemplo de uso do comando monitor.py para (re)indexação dos anos de 2014, 2015 e 2016. Neste caso, quando se define mais de um ano, serão processados todos os meses.

      monitor.py -y 2014,2015,2016

Para fins de referência, ressaltamos que para este projeto foram utilizadas as seguintes tecnologias e ferramentas:

  • Python
    • Flask (Web framework)
    • Jinja (Template Language)
  • Javascript
  • Elasticsearch
  • Shellscript
  • Docker

ifsearch's People

Contributors

gassis avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.