Skip to content

Full text search engine powered by LotusDB.

License

Notifications You must be signed in to change notification settings

lotusdblabs/lotusearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoFound

GoFound 一个golang实现的全文检索引擎,支持持久化和单机亿级数据毫秒级查找。 接口可以通过http调用。详见 API文档

文档

在线体验

Simple社区使用的GoFound,可以直接模糊搜索相关帖子

在线体验

QQ交流群

556102631

二进制文件下载

支持Windows、Linux、macOS、(amd64和arm64)和苹果M1 处理器

点击下载

技术栈

  • 平衡二叉查找树
  • 二分法查找
  • 快速排序法
  • 倒排索引
  • 正排索引
  • 文件分片
  • golang-jieba分词
  • leveldb

为何要用golang实现一个全文检索引擎?

  • 正如其名,GoFound去探索全文检索的世界,一个小巧精悍的全文检索引擎,支持持久化和单机亿级数据毫秒级查找。

  • 传统的项目大多数会采用ElasticSearch来做全文检索,因为ElasticSearch够成熟,社区活跃、资料完善。缺点就是配置繁琐、基于JVM对内存消耗比较大。

  • 所以我们需要一个更高效的搜索引擎,而又不会消耗太多的内存。 以最低的内存达到全文检索的目的,相比ElasticSearchgofound是原生编译,会减少系统资源的消耗。而且对外无任何依赖。

安装和启动

下载好源码之后,进入到源码目录,执行下列两个命令

  • 编译

直接下载 可执行文件 可以不用编译,省去这一步。

go get && go build
  • 启动
./gofound --addr=:8080 --data=./data

多语言SDK

Java

Python

Node.js

其他语言的SDK,正在陆续完善中。也可以直接通过API文档用HTTP请求实现。

和ES比较

ES GoFound
支持持久化 支持持久化
基于内存索引 基于磁盘+内存缓存
需要安装JDK 原生二进制,无外部依赖
需要安装第三方分词插件 自带中文分词和词库
默认没有可视化管理界面 自带可视化管理界面
内存占用大 基于Golang原生可执行文件,内存非常小
配置复杂 默认可以不加任何参数启动,并且提供少量配置

待办

TODO

使用GoFound的用户

Simple社区贝塔博客Book360

深圳市十二点科技有限公司深圳市恒一博科技有限公司

西安易神网络信息系统服务有限公司

影视资源搜索酷易物联French博客

好咪二次元之家

发布日志

发布日志