Arquitetura de Serviços Modulares para indexar e pesquisar URLs por seu conteúdo usando o CouchDB+Lucene como um SearchEngine.
Nota: Este projeto ainda está sob desenvolvimento pesado, espere um pouco de WIP!
NOTA: (Docker e Docker-Compose necessário)
// Build docker containers (1st time)
docker-compose build
// Launch all required services
# [PRODUCTION]
docker-compose up
# [DEVELOPMENT]
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
// Open UI
open http://localhost:8080
Nota: Para uma execução completa de redefinição de dados do CouchDB (aviso, todos os dados serão apagados):
docker-compose rm && rm DatabaseInit/dbinitstatus/.dbinitdone
NOTA: (Docker e Docker-Compose necessário)
// Test GetImageFromURL
open http://localhost:3000/?url=www.botdream.com&width=1024&height=900
// Test GetContentFromURL
curl http://localhost:6000/?url=www.botdream.com
// Open CouchDB UI
open http://localhost:5984/_utils/database.html?searchengine/_all_docs
// Test CouchDB+Lucene search
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_content?q=brilliant&include_docs=true | jq .
//DBProxy service
[POST] curl -d 'url=http://www.botdream.com' http://localhost:8000/url
[DELETE] curl -X DELETE http://localhost:8000/remove/http-botdream-com-botdream-com-botdream-com%2F2017-04-21T23%3A11%3A04.910Z | jq .
[GET] curl http://localhost:8000/search/botdream | jq .
// shutdown services
docker-compose stop
OR
CTRL+C in the original terminal
// clean services data (reset containers)
docker-compose rm
// when changing source code you should rebuild docker images, use this generic command to build all and ignore cache (will take some time, forces to rebuild all images from scratch)
docker-compose build --no-cache
PENDÊNCIA:
Inicializador do banco de dados CouchDB.
Para um teste de serviço rápido, execute esses comandos:
cd DatabaseInit
./docker_build.sh
./docker_run.sh
Reacte a interface do webApp.
Para um teste de serviço rápido, execute esses comandos:
cd UI
./docker_build.sh
./docker_run.sh
open http://localhost:8080
Um simples serviço da Web de captura de tela alimentado por Express e Phantomjs. Bifurcado a partir de captura de tela.
Documentação original Avaliável aqui
Para um teste de serviço rápido, execute esses comandos:
cd GetImageFromURL
./docker_build.sh
./docker_run.sh
open http://localhost:3000/?url=www.botdream.com&width=1024&height=900
// or with clipping params
open http://localhost:3000/?url=www.botdream.com&width=1024&height=900&clipRect=%7B%22top%22%3A0%2C%22left%22%3A0%2C%22width%22%3A1024%2C%22height%22%3A800%7D
curl http://localhost:3000/?url=www.botdream.com&width=1024&height=900 > botdream.png
curl --silent http://localhost:3000/?url=www.botdream.com&width=1024&height=900 | imgcat
Um simples conteúdo raspando o serviço da web alimentado por Express e Cheerio.js
Para um teste de serviço rápido, execute esses comandos:
cd GetContentFromURL
./docker_build.sh
./docker_run.sh
curl http://localhost:6000/?url=www.botdream.com
Crie um banco de dados e alguns documentos e, em seguida, você pode começar a configurar e consultar índices, conforme explicado no CouchDB-Luceno ReadMe.
Para um teste de serviço rápido, execute esses comandos:
cd CouchDBLucene
docker-compose up
./database_init.sh
open http://localhost:5984/_utils/
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_content?q=nirvana&include_docs=true | jq .
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_content?q=einstein&include_docs=true | jq .
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_content?q=brilliant&include_docs=true | jq .
// Clear CouchDB data
docker-compose rm
Mais informações sobre Pesquisa FullText de Couchdb-Lucene aqui: Couchdblucene-Fulltext-Search
Uma ferramenta simples feita para ir para analisar o arquivo HTML exportado do Google Chrome para o CouchDB-Lucene.
Para um teste de serviço rápido, execute esses comandos:
cd SendFavoritesToCouchDB
# export Chrome Bookmark file to ./bookmarks_sample.html
# ./build.sh # in case you need to change the sourcecode and compile the tool
# Launch CouchDB-Lucene service and initialize database
# Launch GetContentFromURL service
./SendFavoritesToCouchDB ./bookmarks_sample.html
Uma interface do usuário experimental usando o vue.js, o servidor HTTP básico do WebPack-Dev-Server, nenhum back-end ainda implementado, nem o Docker Container disponível!
Para um teste de serviço rápido, execute esses comandos:
cd UI
npm install
npm start
open http://localhost:8080
Um serviço simples de URL para índice. Envie carne, pegue sauge.
Isso leva o URL fornecido, passa-o pelo getContentFromurl e depois o empurra para o banco de dados searchengine CouchDB, onde o CouchDB-Luceno está indexando documentos.
curl -d 'url = http: //www.botdream.com' http: // localhost: 8000/url
Então, quando terminar:
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_content?q=botdream&include_docs=true | jq .
Nota: O mecanismo de serviço agora está indexando por título:
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_title?q=botdream&include_docs=true | jq .
Além disso: o DBProxy agora está implementando o endpoint de pesquisa (isso evita que a interface do usuário exige dados diretamente para o CouchDB, também no futuro será possível usar outro mecanismo de banco de dados e abstrair com este serviço => Olhando para o Elasticsearch)
curl -X GET --silent http://localhost:8000/search/botdream | jq .