【说明】roit已多年未更新,go-search不推荐使用了。推荐使用Rust实现的meilisearch, 可以直接下载可执行程序使用。golang版SDK可以使用meilisearch-sdk.
go-search是基于github.com/go-ego/riot封装而成的搜索服务。
如果把riot类比java的lucene,go-search相当于solr或elasticsearch。go-search提供了比solr、es 更简单的API接口、更简洁的配置部署方法、占用内存资源更少。
目前go-search还是一个单机版服务,暂时没有做分布式服务的计划。
Linux下的二进制可执行版本可以直接到go-search linux
下载,另存保存后, chmod +x go-search
, 就可以使用了
$ git clone github.com/rosbit/go-search
$ cd go-search
$ make
-
需要准备好一个配置文件,参考sample-conf
{ "listen-host": "", "listen-port": 7080, "worker-num": 5, "timeout": 0, "lru-minutes": 10, // 至少超过n分钟没访问的索引会从内存清除 "root-dir": "./schema-home" // 索引配置文件根路径 }
-
环境变量
- CONF_FILE: 指明配置文件路径
- USE_STORE: 是否持久化保存索引数据,不指明则索引只保存在内存中,速度快,重启就丢失
- bg/badger 使用badger持久化,速度较慢
- ldb/leveldb 使用leveldb持久化,缺省使用,速度快
- bolt 使用boltdb持久化
- TZ: 时区,如Asia/Shanghai,缺省时区东8区,对于时间类型的转换保存很重要
-
运行服务
$ CONF_FILE=./sample.conf.json USE_STORE=ldb TZ=Asia/Shanghai ./go-search
- 参考API接口文档
The package is not fully tested, so be careful.
Pull requests are welcome! Also, if you want to discuss something send a pull request with proposal and changes. Convention: fork the repository and make changes on your fork in a feature branch.