CouchDB+LuceneをSearchEngineとして使用して、ITのコンテンツでURLをインデックス化および検索するモジュラーサービスアーキテクチャ。
注:このプロジェクトはまだ激しい開発中です。WIPを期待してください!
注:(DockerとDocker-Composeが必要)
// 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
注:完全なCouchDBデータリセットの実行の場合(警告、すべてのデータが消去されます):
docker-compose rm && rm DatabaseInit/dbinitstatus/.dbinitdone
注:(DockerとDocker-Composeが必要)
// 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データベース初期イザー。
クイックサービステストのために、これはコマンドを実行します:
cd DatabaseInit
./docker_build.sh
./docker_run.sh
WebAppUIを反応します。
クイックサービステストのために、これはコマンドを実行します:
cd UI
./docker_build.sh
./docker_run.sh
open http://localhost:8080
ExpressとPhantomjsを搭載したシンプルなスクリーンショットWebサービス。スクリーンショットアプリからフォーク。
元のドキュメントはここで利用できます
クイックサービステストのために、これはコマンドを実行します:
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
Expressとchereio.jsを搭載したシンプルなコンテンツスクレイピングWebサービス
クイックサービステストのために、これはコマンドを実行します:
cd GetContentFromURL
./docker_build.sh
./docker_run.sh
curl http://localhost:6000/?url=www.botdream.com
データベースといくつかのドキュメントを作成すると、couchdb-lucene readmeで説明されているように、インデックスのセットアップとクエリを開始できます。
クイックサービステストのために、これはコマンドを実行します:
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
CouchDB-Lucene FullText検索の詳細については、CouchDBlucene-FullText-Searchをご覧ください
Google Chromeブックマークを解析するために作られた簡単なツールは、HTMLファイルをCouchDB-Luceneにエクスポートしました。
クイックサービステストのために、これはコマンドを実行します:
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
vue.js、基本的なWebpack-dev-server HTTPサーバーを使用した実験的なUI、バックエンドはまだ実装されていません。
クイックサービステストのために、これはコマンドを実行します:
cd UI
npm install
npm start
open http://localhost:8080
単純なURLからインデックスサービス。肉を送って、ソージーを手に入れてください。
これにより、指定されたURLが取得され、GetContentFromurlを通過し、CouchDB-Luceneがドキュメントをインデックス作成しているsearchengine CouchDBデータベースに押し込みます。
curl -d 'url = http://www.botdream.com' http:// localhost:8000/url
その後、それが完了したら:
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_content?q=botdream&include_docs=true | jq .
注:サービスエンジンはタイトルごとにインデックス作成しています。
curl -X GET --silent http://localhost:5984/_fti/local/searchengine/_design/search/by_title?q=botdream&include_docs=true | jq .
また:DBProxyは現在、検索エンドポイントを実装しています(これにより、UIはCouchDBに直接データを要求することを回避します。また、将来的には他のDBエンジンを使用して、このサービスで抽象化することが可能になります=> ElasticSearchを検討することができます)
curl -X GET --silent http://localhost:8000/search/botdream | jq .