GoFound 是一个golang实现的全文检索引擎 基于平衡二叉树+正排索引、倒排索引实现 可支持亿级数据,毫秒级查询。使用简单,使用http接口,任何系统都可以使用。
使用Apache-2.0开源协议
管理界面
服务器监控:
暗色模式:
支持Windows、Linux、macOS、(amd64和arm64)和苹果M1 处理器
ES | GoFound |
---|---|
支持持久化 | 支持持久化 |
基于内存索引 | 基于磁盘+内存缓存 |
需要安装JDK | 原生二进制,无外部依赖 |
需要安装第三方分词插件 | 自带中文分词和词库 |
默认没有可视化管理界面 | 自带可视化管理界面 |
内存占用大 | 基于Golang原生可执行文件,内存非常小 |
配置复杂 | 默认可以不加任何参数启动,并且提供少量配置 |
下载好源码之后,进入到源码目录,执行下列两个命令
直接下载 可执行文件 可以不用编译,省去这一步。
go get && go build
./gofound --addr=:8080 --data=./data
docker build -t gofound .
docker run -d --name gofound -p 5678:5678 -v /mnt/data/gofound:/usr/local/go_found/data gofound:latest
使用gofound的多语言SDK,可以在不同语言中使用gofound。但是请注意,版本号与gofound需要一致。主版本和子版本号,修订版不一致不影响。
Java
Python
Node.js
其他语言的SDK,正在陆续完善中。也可以直接通过API文档用HTTP请求实现。
gofound 采用平衡二叉树对文本关键词进行索引,然后利用leveldb存储id值,以及对应的文档。
二叉平衡查找树是一个高效的查找树,它的查找速度是O(log n),并且每个节点的子树都是平衡的。 gofound默认是分10个文件块,也就是10个平衡查找树,每个平衡查找树的深度是log10(n)。
1亿条索引在一颗树查找最大26次,如果10亿数据,最大查找也是26次,会根据key的hash值取模shard数量,来找到对应的索引进行检索。
来源:
https://www.toutiao.com/article/7097614973505028623/?log_from=804a8e453e95e_1652665811429
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com
来都来了,走啥走,留个言呗~
IT大咖说 | 关于版权
由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!