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

fastsearch

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

  • 支持持久化

  • 基于磁盘+内存缓存

  • 支持表达式

  • 原生二进制,无外部依赖

  • 自带中文分词和词库

  • 自带可视化管理界面

  • 基于Golang原生可执行文件,内存非常小

  • 默认可以不加任何参数启动,并且提供少量配置

  • 快速检索

  • 主动防御监测非法关键词

  • 禁用搜索非法关键词

  • 负面词管理

  • 负面消息推送

  • 接口可以通过http调用。

  • 实时消息通知(支持企业微信、钉钉等)

  • MQTT协议实时推送

  • 增加对文档内容进行索引和搜索(新增参数cut_document)

  • 增加补充关键字检索 (新增参数has_key,keys)

详见 API文档

文档

fastsearch在线管理后台Demo

http://127.0.0.1:5679/admin

二进制文件下载

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

技术栈

  • 二分法查找
  • 快速排序法
  • 倒排索引
  • 正排索引
  • 文件分片
  • golang-jieba分词
  • leveldb
  • 支持表达式的条件过滤
  • 支持表达式权限排序

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

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

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

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

安装和启动

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

  • 编译

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

go get && go build
  • 启动
./fastsearch --addr=:8080 --data=./data/db
  • docker部署
docker build -t fastsearch .
docker run -d --name fastsearch -p 5678:5679 -v /mnt/data/fastsearch:/usr/local/fastsearch/data fastsearch:latest

多语言SDK

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

API文档用HTTP请求实现。

和ES比较

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

功能特性

  • 支持持久化
  • 基于磁盘+内存缓存
  • 支持表达式
  • 原生二进制,无外部依赖
  • 自带中文分词和词库
  • 自带可视化管理界面
  • 基于Golang原生可执行文件,内存非常小
  • 默认可以不加任何参数启动,并且提供少量配置
  • 快速检索

新增功能

  • 主动防御监测非法关键词
  • 禁用搜索非法关键词
  • 负面词管理
  • 负面消息推送

源码下载

https://gitee.com/rachel_os/fastsearch

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值