
? Simple, distribué, léger
Implémentation du moteur de recherche RESTFul écrit en Go?
SearchGoose est simple distribution de moteur de recherche reposant pris en charge les données de recherche et d'indexation. À des fins d'étude, comprenant principalement les détails de mise en œuvre de la façon dont Elasticsearch est construit, en se concentrant sur le clustering système distribué et en soutenant la recherche en texte intégral à l'aide de Bleve. SearchGoose vise à fournir une gestion des données rapide et flexible en résolvant les problèmes de la base de données relationnelle existante, qui dérange les tâches pour rechercher et diviser les données de chaîne. Pour résoudre ce problème, ce projet utilise une structure de données appelée un index inversé qui prend en charge les recherches rapides en texte intégral. Il implémente également l'algorithme de type RAFT et le système de vote basé sur le quorum pour le service de découverte et électorale en mode de clustering.


$ 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=8082Pour essayer l'une des requêtes ci-dessous, vous pouvez utiliser l'exemple ci-dessus
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"
}
}
}
L'image ci-dessus décrit l'application de test de recherche de recherche à l'aide de Guttenberg-Search.
L'image ci-dessus décrit une interface simplifiée pour gérer et surveiller les clusters de recherche de recherche par Elasticsearch-HQ.