Giter VIP home page Giter VIP logo

lotusearch's Introduction

GoFound

GoFound 一个golang实现的全文检索引擎,支持持久化和单机亿级数据毫秒级查找。

接口可以通过http调用。

详见 API文档

文档

在线体验

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

在线体验

GoFound在线管理后台Demo

http://119.29.69.50:5678/admin

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
  • docker部署
docker build -t gofound .
docker run -d --name gofound -p 5678:5678 -v /mnt/data/gofound:/usr/local/go_found/data gofound:latest

多语言SDK

使用gofound的多语言SDK,可以在不同语言中使用gofound。但是请注意,版本号与gofound需要一致。主版本和子版本号,修订版不一致不影响。

Java

Python

Node.js

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

和ES比较

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

待办

TODO

使用GoFound的用户

Simple社区贝塔博客Book360

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

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

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

好咪二次元之家

发布日志

发布日志

开发成员

姓名 联系方式 贡献部分
XiaoK29 [email protected] 负责人、引擎、接口
newpanjing [email protected] 引擎、UI
nightzjp - 引擎
xiao luobei - 引擎

lotusearch's People

Contributors

baletu avatar cocainecong avatar codfrm avatar issueye avatar leaf-dawn avatar liu-cn avatar makonike avatar ncwsky avatar newpanjing avatar nightzjp avatar roseduan avatar schopenhauerzhang avatar songzhibin97 avatar tom-debug110 avatar xiaok29 avatar zhangclb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

lotusearch's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.