Modulare Dienste Architektur, um URLs nach seinem Inhalt mit CouchDB+Lucene als Sucheingine zu indexieren und zu durchsuchen.
Hinweis: Dieses Projekt steht noch in einer starken Entwicklung. Bitte erwarten Sie etwas WIP!
Hinweis: (Docker und Docker-Compose erforderlich)
// 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
Hinweis: Für einen vollständigen CouchDB -Daten -Reset -Lauf (Warnung werden alle Daten gelöscht):
docker-compose rm && rm DatabaseInit/dbinitstatus/.dbinitdone
Hinweis: (Docker und Docker-Compose erforderlich)
// 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
Todo:
CouchDB Database Initializer.
Für einen schnellen Service -Test führen Sie diese Befehle aus:
cd DatabaseInit
./docker_build.sh
./docker_run.sh
React WebApp UI.
Für einen schnellen Service -Test führen Sie diese Befehle aus:
cd UI
./docker_build.sh
./docker_run.sh
open http://localhost:8080
Ein einfacher Screenshot -Webdienst von Express und Phantomjs. Von Screenshot-App gegabelt.
Originaldokumentation hier avalierbar
Für einen schnellen Service -Test führen Sie diese Befehle aus:
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
Ein einfacher Inhalt, der von Express und Cheerio.js ausgestrahlt wird, um Webdienst zu kratzen
Für einen schnellen Service -Test führen Sie diese Befehle aus:
cd GetContentFromURL
./docker_build.sh
./docker_run.sh
curl http://localhost:6000/?url=www.botdream.com
Erstellen Sie eine Datenbank und einige Dokumente und dann können Sie mit dem Einrichten und Abfragen von Indizes beginnen, wie im CouchDB-Lucene Readme erläutert.
Für einen schnellen Service -Test führen Sie diese Befehle aus:
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
Weitere Informationen zur CouchDB-Lucene FullText-Suche hier: CouchDblucen-fullText-Suche
Ein einfaches Tool, das in GoouchDB-Lucen in CouchDB-Lucen exportierte, ein einfaches Tool in Google Chrome Lesezeichen.
Für einen schnellen Service -Test führen Sie diese Befehle aus:
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
Eine experimentelle Benutzeroberfläche mit VUE.JS, grundlegender Webpack-dev-Server-HTTP-Server, noch kein Backend implementiert und keiner der Docker-Container verfügbar!
Für einen schnellen Service -Test führen Sie diese Befehle aus:
cd UI
npm install
npm start
open http://localhost:8080
Ein einfacher URL-to-Index-Service. Fleisch schick, sättigen Sie sich.
Dies führt die angegebene URL, führt sie durch GetContentFromurl und drückt sie dann in die CouchDB-Datenbank searchengine , in der CouchDB-Lucen dokumentiert.
curl -d 'url = http: //www.botdream.com' http: // localhost: 8000/url
Dann, wenn es fertig ist:
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_content?q=botdream&include_docs=true | jq .
Hinweis: Die Service Engine indiziert sich jetzt nach Titel:
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_title?q=botdream&include_docs=true | jq .
Außerdem: DBProxy implementiert jetzt den Suchendpunkt (so vermeidet die Benutzeroberfläche, um Daten direkt an CouchDB zu verlangen. Auch in Zukunft ist es möglich, eine andere DB -Engine zu verwenden und sie mit diesem Service abstrahieren zu lassen.
curl -X GET --silent http://localhost:8000/search/botdream | jq .