GoFound 一个 golang 实现的全文检索引擎,支持持久化和单机亿级数据毫秒级查找。接口可以通过 http 调用。
Gitee:https://toscode.gitee.com/anrubing/gofound
GitHub:https://github.com/sea-team/gofound
二进制文件下载:https://github.com/sea-team/gofound/releases
启动 GoFound
./gofound --addr=:8080 --data=./data
配置参数
在编译好 gofound 之后,就可以启动了。
./gofound
启动并监听 8080 端口,并设置数据存储路径为 ./data
./gofound --addr=:8080 --data=./data
参数
-addr string
设置监听地址和端口 (default "0.0.0.0:5678")
-auth string
开启认证,例如: admin:123456
-config string
配置文件路径,配置此项其他参数忽略
-data string
设置数据存储目录 (default "./data")
-debug
设置是否开启调试模式 (default true)
-dictionary string
设置词典路径 (default "./data/dictionary.txt")
-enableAdmin
设置是否开启后台管理 (default true)
-enableGzip
是否开启 gzip 压缩 (default true)
-gomaxprocs int
设置 GOMAXPROCS (default 20)
-timeout int
数据库超时关闭时间 (秒) (default 600)
为何要用 golang 实现一个全文检索引擎?
正如其名,GoFound 去探索全文检索的世界,一个小巧精悍的全文检索引擎,支持持久化和单机亿级数据毫秒级查找。
传统的项目大多数会采用 ElasticSearch 来做全文检索,因为 ElasticSearch 够成熟,社区活跃、资料完善。缺点就是配置繁琐、基于 JVM 对内存消耗比较大。
所以我们需要一个更高效的搜索引擎,而又不会消耗太多的内存。以最低的内存达到全文检索的目的,相比 ElasticSearch,gofound 是原生编译,会减少系统资源的消耗。而且对外无任何依赖。
和 ES 比较
ES | GoFound |
---|---|
支持持久化 | 支持持久化 |
基于内存索引 | 基于磁盘 + 内存缓存 |
需要安装 JDK | 原生二进制,无外部依赖 |
需要安装第三方分词插件 | 自带中文分词和词库 |
默认没有可视化管理界面 | 自带可视化管理界面 |
内存占用大 | 基于 Golang 原生可执行文件,内存非常小 |
配置复杂 | 默认可以不加任何参数启动,并且提供少量配置 |
Api 文档
https://toscode.gitee.com/anrubing/gofound/blob/main/docs/api.md
正文完
有偿技术支持加微信