0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Rust编写的首个Postgres基础Elasticsearch开源替代品问世

OSC开源社区 来源:OSC开源社区 2024-02-22 11:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

YC S23 投了一个新项目ParadeDB[1], 非常有意思。他们的 Slogan 是 “Postgres for Search & Analytics —— Modern Elasticsearch Alternative built on Postgres”。就是用于搜索和分析的 PostgreSQL,旨在成为 Elasticsearch 的替代。

PostgreSQL 的生态确实越来越繁荣了,在基于 PG 的扩展与衍生中,我们已经有了基于 MongoDB 开源替代 —— FerretDB,SQL Server 开源替代 Babelfish,Firebase 开源替代 Supabase,AirTable 开源替代 NocoDB,等等等等,现在又多了 ElasticSearch 开源替代 —— ParadeDB

96fa7832-cfd6-11ee-a297-92fbcf53809c.png

《PGSQL x Pigsty: 数据库全能王来了》

ParadeDB 实际上是由三个 PostgreSQL 扩展组成:pg_bm25,pg_analytics,以及pg_sparse。这三个扩展都可以独立使用了。应 ParadeDB 创始人所托,我已经将这几个扩展打好包(v0.5.6),并将会在 Pigsty 的下个 Release v2.6 中默认收录,让用户能够开箱即用。

我翻译了 ParadeDB 的官网介绍与四篇博客文章,为您介绍这个 PostgreSQL 生态的新星。今天是第一篇 —— ParadeDB 概览

ParadeDB

我们荣幸地向您介绍 ParadeDB:针对搜索场景优化的 PostgreSQL 数据库。ParadeDB是第一个旨在成为 Elasticsearch 替代的 Postgres 数据库构建,被设计为可以在PG表上进行闪电般快速的全文检索、语义检索、以及混合检索。

ParadeDB解决什么问题?

对于许多组织而言,搜索依然是一个未解问题 —— 尽管有像 Elasticsearch 这样的巨头存在,但大多数与其打过交道的开发者都知道,运行、调优和管理 Elasticsearch 是多么蛋疼。虽然也有其他的搜索引擎服务,但在现有数据库上粘连对接这些外部服务,会引入更多重建索引和数据复制的复杂难题与成本。

那些追求统一权威数据源与搜索引擎的开发者转向了 PostgreSQL,PG 已经通过tsvector提供了基本的全文检索能力,也通过pgvector提供了向量语义检索能力。这些工具也许对于简单用例和中等大小的数据集来说很好使,但当表变大或查询变得复杂时就有些不够用了:

1.大表上的排序和关键词搜索非常缓慢2.不支持 BM25 计算3.没有混合检索支持,将向量搜索与全文搜索的技术4.没有实时搜索 — 数据必须手动重新索引或重新嵌入5.对复杂查询如分面或相关性调优的支持有限

到目前为止,我们已经目睹了许多工程团队用很勉强的方式在 Postgres 上叠加了一套 Elasticsearch,随即因为后者太过于臃肿、昂贵或复杂,而最终放弃。我们在想:如果 Postgres 本身就带有 ElasticSearch 水平的搜索会发生什么?那么开发者就不会有这种两难选择了 —— 统一使用 PostgreSQL 但搜索能力受限,还是使用事实源和搜索引擎两种独立的服务?

ParadeDB适用于谁?

Elasticsearch 拥有广泛的应用场景,但我们并不企图一蹴而就地覆盖所有场景——至少现阶段不是。我们更倾向于专注于一些核心场景 —— 专为那些希望在 PostgreSQL 上进行搜索的用户服务。对于以下情况,ParadeDB 会是您的理想选择:

•希望使用单一 Postgres 作为事实来源,厌恶在多个服务之间搬运复制数据。•希望在不损害性能与可伸缩性的前提下,对存储在 Postgres 中的海量文档进行全文搜索。•希望 ANN/相似度搜索与全文搜索相结合,从而获得更精准的语义匹配效果

译者注:在 Clickbench 中,ParadeDB 的分析性能表现相当不错,目前在 PG 生态的分析类插件中拔得头筹。

97035bb4-cfd6-11ee-a297-92fbcf53809c.png

ParadeDB产品介绍

ParadeDB 是一个完全托管的 Postgres 数据库,目前任何其他 PG 供应商都还没有提供此类全文索引和搜索 PG 表的能力:

9716548a-cfd6-11ee-a297-92fbcf53809c.png

与 AWS RDS 等托管服务不同,ParadeDB 是一个 PostgreSQL 扩展插件,不需要任何设置,可以与整个 PG 生态集成,并完全可定制。ParadeDB 是开源的(AGPLv3),并提供了一个简单的 Docker Compose 模板以满足需要自建/定制的开发者的需求。

ParadeDB 的构建方式

ParadeDB 的核心是一个带有自定义扩展的标准 Postgres 数据库,这些扩展使用 Rust 编写,引入了增强的搜索能力。

ParadeDB 的搜索引擎基于 Tantivy 构建,Tantivy 是受 Apache Lucene 启发的开源 Rust 搜索库。其索引作为原生的 PG 索引存储在PG中,从而避免了繁琐的数据复制/ETL工作,并同时可以确保事务 ACID。

ParadeDB 为 Postgres 生态提供了一个新扩展:pg_bm25。pg_bm25使用 BM25 评分算法在 Postgres 中实现了基于 Rust 的全文搜索。ParadeDB 会预装这个扩展插件。

下一步是什么?

ParadeDB 的托管云版本目前处于 PrivateBeta 阶段。我们的目标是在 2024 年初推出一个自助服务的云平台。如果你想在此期间访问 PrivateBeta 版本,欢迎加入我们的等待名单[2]。

我们核心团队的重点是开发 ParadeDB 的开源版本,将在 2023 年冬季推出。

我们 Build in Public,并很高兴能与整个社区分享 ParadeDB。欢迎关注我们,在未来的博文中我们会进一步详细介绍 ParadeDB 背后的有趣技术挑战。

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67737
  • SQL Server
    +关注

    关注

    0

    文章

    21

    浏览量

    13634

原文标题:ParadeDB:首个基于Postgres的Elasticsearch开源替代、采用Rust编写

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    2025开放原子开发者大会旋武开源社区Rust分论坛成功举办

    11月22日,2025开放原子开发者大会——旋武开源社区Rust分论坛在北京顺利召开。论坛以“共建中国Rust生态”为核心主题,汇聚京东、华为、vivo、阿里、毛豆教育、DORA社区及南京大学等企业与学术机构技术专家,及众多
    的头像 发表于 11-27 14:55 322次阅读

    固态继任:倾佳电子SiC MOSFET为何是现代电力系统中机械继电器的理想替代品的分析报告

    固态继任:倾佳电子SiC MOSFET为何是现代电力系统中机械继电器的理想替代品的分析报告 倾佳电子(Changer Tech)是一家专注于功率半导体和新能源汽车连接器的分销商。主要服务于中国工业
    的头像 发表于 10-19 13:31 171次阅读
    固态继任:倾佳电子SiC MOSFET为何是现代电力系统中机械继电器的理想<b class='flag-5'>替代品</b>的分析报告

    为什么薄硅片是一种高纯度硅的替代品?# 薄硅片# 高纯度# 硅

    半导体
    华林科纳半导体设备制造
    发布于 :2025年09月24日 14:04:46

    100%开源!行业首个企业级智能体

    近日,京东云正式开源JoyAgent智能体。作为行业首个100%开源的企业级智能体,实现了产品级开源,包括前端、后端、框架、引擎和核心子智能体。开源
    的头像 发表于 07-26 09:26 993次阅读

    请问OpenVINO™ 是否支持 Rust 绑定?

    无法确定OpenVINO™是否支持 Rust 绑定。
    发表于 06-25 07:45

    单节点Elasticsearch+Filebeat+Kibana安装指南

    单节点Elasticsearch+Filebeat+Kibana安装指南
    的头像 发表于 05-21 11:06 983次阅读
    单节点<b class='flag-5'>Elasticsearch</b>+Filebeat+Kibana安装指南

    开源本身可以替代大型科技公司吗?

    “  这是一位荷兰学者对于开源与商业科技公司的思考。   ”   现在,我们越来越担心 “大型科技公司” 的主导地位,开源技术作为一种替代技术经常被提及,尤其是现在我们的政府似乎正在向微软进行全面
    的头像 发表于 04-30 16:49 492次阅读

    英伟达GROOT N1 全球首个开源人形机器人基础模型

    英伟达GROOT N1 全球首个开源人形机器人基础大模型
    的头像 发表于 03-20 11:05 1704次阅读

    云天励飞DeepEdge10适配DeepSeek开源周“首个大招”:FlashMLA

    2 月 24 日,DeepSeek"开源周"正式启动,并发布首个代码库FlashMLA……
    的头像 发表于 02-27 11:06 904次阅读
    云天励飞DeepEdge10适配DeepSeek<b class='flag-5'>开源</b>周“<b class='flag-5'>首个</b>大招”:FlashMLA

    请问有没有关于SN74HC1G14的替代品

    请问有没有关于SN74HC1G14的替代品?要求驱动能力大些,最好是能够达到输出电流30mA这样的芯片?谢谢
    发表于 02-14 08:38

    JavaScript与Rust和WebAssembly集成

    偶然一次机会,接触了Rust的代码。当时想给团队小伙伴做演示,发现自己并不能在移动端按照文档生成演示demo。我就想,要是Rust代码能转化成JavaScript就好了。结果一搜,还真有。
    的头像 发表于 01-24 15:43 799次阅读
    JavaScript与<b class='flag-5'>Rust</b>和WebAssembly集成

    如何在Linux环境下高效安装部署和配置Elasticsearch

    /CentOS-7-x86_64-DVD-2009.iso elasticsearch-7.10.0-linux-x86_64.tar.gz https://www.elastic.co/cn/downloads/past-releases
    的头像 发表于 01-16 11:49 1829次阅读

    在华为云上通过 Docker 容器部署 Elasticsearch 并进行性能评测

      2.2 安装 Docker   2.3 启动 Docker   3. 使用Docker部署Elasticsearch   3.1 拉取Elasticsearch镜像   3.2 启动
    的头像 发表于 01-13 13:36 890次阅读
    在华为云上通过 Docker 容器部署 <b class='flag-5'>Elasticsearch</b> 并进行性能评测

    超级电容是电池的替代品,你认同吗?

    超级电容作为一种新型的储能器件,因其能量密度高、快速充电和放电速度、使用时间长、电容量大等特点,被认为是电池的一种替代品。但在高能量需求和长期保持能量场景下,超级电容仍无法替代电池。
    的头像 发表于 12-31 15:00 1434次阅读
    超级电容是电池的<b class='flag-5'>替代品</b>,你认同吗?

    打包工具Rolldown 1.0.0-beta.1发布

    Rolldown 1.0.0-beta.1 发布了。 Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口,但在功能范围上更类似于
    的头像 发表于 12-31 10:00 1087次阅读