searchgoose
1.0.0

?シンプルで分散した、軽量
Goで書かれたRESTFUL検索エンジンの実装?
SearchGooseは、検索およびインデックス作成データをサポートする単純な分散型Restful Search Engineです。学習目的では、弾性検索の構築方法の実装の詳細を主に理解し、分散システムのクラスタリングに焦点を当て、Bleveを使用したフルテキスト検索をサポートします。 SearchGooseは、既存のリレーショナルデータベースの問題を解決することにより、高速かつ柔軟なデータ処理を提供することを目的としています。この問題を解決するために、このプロジェクトは、高速のフルテキスト検索をサポートする逆インデックスと呼ばれるデータ構造を使用します。また、クラスタリングモードでの発見と選挙サービスのために、いかだのようなアルゴリズムと定足数ベースの投票システムを実装しています。


$ docker build . --rm --tag searchgoose:latest$ make build$ go run main.go -transport.port=8180 -http.port=8080$ go run main.go -node.name=sg-node-01 -transport.port=8180 -http.port=8080
$ go run main.go -node.name=sg-node-02 -seed_hosts=127.0.0.1:8180 -transport.port=8179 -http.port=8081
$ go run main.go -node.name=sg-node-03 -seed_hosts=127.0.0.1:8180 -transport.port=8181 -http.port=8082以下のクエリを試すには、上記の例を使用できます。
PUT /test15
content-type: application/json
{
"settings": {
"number_of_shards": 3
},
"mappings": {
"properties": {
"field1": {
"type": "text"
}
}
}
}
PUT /test15/_doc/4
content-type: application/json
{
"field1": "test",
"field2": "test2"
}
POST /test15/_search
content-type: application/json
{
"size": 100,
"query": {
"match": {
"field1": "field test"
}
}
}
上記の画像では、Guttenberg-Searchを使用したSearchGooseテストアプリケーションについて説明しています。
上記の画像では、ElasticSearch-HQによるSearchGooseクラスターを管理および監視するための簡略化されたインターフェイスについて説明しています。