
? Simples, distribuído, leve
Implementação do mecanismo de pesquisa RESTful escrito em Go?
O Pesquitwgoose é um mecanismo de pesquisa RESTful distribuído simples, que suporta dados de pesquisa e indexação. Para fins de estudo, compreendendo principalmente os detalhes da implementação de como o Elasticarch é construído, concentrando-se no sistema distribuído do cluster e apoiando a pesquisa de texto completo usando o BLEVE. O SearchGoose tem como objetivo fornecer um manuseio de dados rápido e flexível, resolvendo os problemas do banco de dados relacional existente, que está incomodando as tarefas para pesquisar e dividir dados da string. Para resolver esse problema, este projeto usa uma estrutura de dados chamada um índice invertido que suporta pesquisas rápidas de texto completo. Ele também implementa o algoritmo do tipo RAFT e o sistema de votação baseado em quorum para serviço de descoberta e eleição no modo de cluster.


$ 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=8082Para experimentar qualquer uma das consultas abaixo, você pode usar os Alcadores de exemplo acima
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"
}
}
}
A imagem acima descreve o aplicativo de teste de searchgoose usando o guttenberg-search.
A imagem acima descreve a interface simplificada para gerenciar e monitorar clusters de gorjeta de pesquisa pelo Elasticsearch-HQ.