一飞开源,介绍创意、新奇、有趣、实用的免费开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!
一、开源项目简介GoFound GoLang Full text search.
Go语言全文检索引擎,毫秒级查询。 使用http接口调用,集成Admin管理界面,任何系统都可以使用。
二、开源协议使用Apache-2.0开源协议
三、界面展示
四、功能概述
GoFound 一个golang实现的全文检索引擎,支持持久化和单机亿级数据毫秒级查找。
接口可以通过http调用。
和ES比较
ES |
GoFound |
支持持久化 |
支持持久化 |
基于内存索引 |
基于磁盘 内存缓存 |
需要安装JDK |
原生二进制,无外部依赖 |
需要安装第三方分词插件 |
自带中文分词和词库 |
默认没有可视化管理界面 |
自带可视化管理界面 |
内存占用大 |
基于Golang原生可执行文件,内存非常小 |
配置复杂 |
默认可以不加任何参数启动,并且提供少量配置 |
- 二分法查找
- 快速排序法
- 倒排索引
- 正排索引
- 文件分片
- golang-jieba分词
- leveldb
- 正如其名,GoFound去探索全文检索的世界,一个小巧精悍的全文检索引擎,支持持久化和单机亿级数据毫秒级查找。
- 传统的项目大多数会采用ElasticSearch来做全文检索,因为ElasticSearch够成熟,社区活跃、资料完善。缺点就是配置繁琐、基于JVM对内存消耗比较大。
- 所以我们需要一个更高效的搜索引擎,而又不会消耗太多的内存。 以最低的内存达到全文检索的目的,相比ElasticSearch,gofound是原生编译,会减少系统资源的消耗。而且对外无任何依赖。
go get && go build./gofound --addr=:8080 --data=./datadocker build -t gofound .
docker run -d --name gofound -p 5678:5678 -v /mnt/data/gofound:/usr/local/go_found/data gofound:latest