searchgoose
1.0.0

? 간단하고 분산 된 가벼운
GO에 작성된 편안한 검색 엔진 구현?
SearchGoose는 검색 및 인덱싱 데이터를 지원하는 간단한 분산 편안한 검색 엔진 입니다. 학습 목적으로, 탄성 검색이 어떻게 구축되는지에 대한 구현 세부 사항을 이해하고, 분산 시스템 클러스터링에 중점을두고, 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아래 쿼리 중 하나를 시도하려면 위의 예제 Quries를 사용할 수 있습니다.
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 클러스터를 관리하고 모니터링하기위한 단순화 된 인터페이스를 설명합니다.