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

    文章

    3591

    浏览量

    63375
  • SQL Server
    +关注

    关注

    0

    文章

    17

    浏览量

    13397

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

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

收藏 人收藏

    评论

    相关推荐

    替代品牌型号介绍

    电子发烧友网站提供《可替代品牌型号介绍.xlsx》资料免费下载
    发表于 12-14 10:49 6次下载

    CFP – SMx封装的高效替代品

    CFP – SMx封装的高效替代品
    的头像 发表于 12-05 10:58 326次阅读
    CFP – SMx封装的高效<b class='flag-5'>替代品</b>

    FastTime-纯Rust编写的高并发快速时间库

    FastTime, 纯Rust编写的快速时间库, 并发: 2800万+/秒. 一、组件
    的头像 发表于 11-06 09:23 344次阅读

    如何编写高性能的Rust代码

    为了最大限度地提高Rust应用程序的性能,你需要了解支持代码的底层硬件架构,如何优化算法和数据结构,以及如何对代码进行配置和基准测试。在本文中,我们将简要介绍这些主题,希望能更好地理解如何编写高性能的Rust代码。
    的头像 发表于 11-03 14:28 482次阅读
    如何<b class='flag-5'>编写</b>高性能的<b class='flag-5'>Rust</b>代码

    以太网芯片DM9051NP的替代品有哪些?

    以太网芯片DM9051NP的替代品有哪些
    发表于 10-28 06:22

    首个Rust版sudo发布!

    sudo-rs项目则是用 Rust 编写的 sudo 和 su 的、面向安全和内存安全的实现。官网声明中显示,sudo-rs 目前仅针对基于 Linux 的操作系统;运行 sudo-rs 需要 Linux 内核 5.9 或更高版本。
    的头像 发表于 09-01 15:59 524次阅读
    <b class='flag-5'>首个</b><b class='flag-5'>Rust</b>版sudo发布!

    Neon--AWS Aurora Postgres的无服务器开源替代品

    Neon 是 AWS Aurora Postgres 的无服务器开源替代品。它将存储和计算分开,并通过跨节点集群重新分布数据来替代 PostgreSQL 存储层。 尝试使用 Neon
    的头像 发表于 08-21 10:46 349次阅读
    Neon--AWS Aurora <b class='flag-5'>Postgres</b>的无服务器<b class='flag-5'>开源</b><b class='flag-5'>替代品</b>

    御芯微荣获2023国产化替代品大赛先锋奖

    近日,备受瞩目的2023国产化替代品大赛圆满落幕。御芯微以自主研发产品测温传感通信一体化芯片UC8288和模组UCM200系列斩获“国产化替代产品先锋奖”。这是对御芯微不懈努力和持续创新的肯定,也是
    的头像 发表于 07-31 23:04 481次阅读
    御芯微荣获2023国产化<b class='flag-5'>替代品</b>大赛先锋奖

    UDA1355H替代品是什么?

    UDA1355H 似乎已过时。 什么产品可以替代它?
    发表于 06-08 07:13

    Wemos D1 Mini的替代品是什么?

    :espcomm_upload_mem 失败 我上传了一个 Blink 文件,它在尝试连接到互联网时失败了,但仍然管理着内置 LED 的闪烁。 尝试使用我的项目所需的 wire.h 和 spi.h 标头可能会出现问题,但我还没有找到任何适合 Wemos D1 Mini 的替代品
    发表于 06-07 07:03

    MC908JL3ECDWE的替代品是什么?

    我正在寻找 8 位 MCU MC908JL3ECDWE 的替代品,因为不建议将其用于新设计(已过时)。为了最大限度地减少工作量,我们希望减少对 28 引脚 SOIC 封装的替换和简单的代码更改
    发表于 06-05 06:17

    谷歌开源内部Rust Crate审计结果

    Rust 可以轻松地将代码封装和共享到 crate 中,crate 是可重用的软件组件,就像其他语言中的包一样。我们拥抱广泛的开源 Rust crate 生态系统,既利用了谷歌以外编写
    的头像 发表于 05-29 11:10 552次阅读

    基于Rust语言的高可靠、开源嵌入式Hypervisor

    Rust-Shyper 是北京航空航天大学计算机学院王雷教授团队设计开发的虚拟机监控器,该系统基于 Rust 语言,实现了一个高可靠、嵌入式 Hypervisor。2023 年 2 月 15 日 Rust-Shyper 正式在
    的头像 发表于 05-24 16:31 1033次阅读
    基于<b class='flag-5'>Rust</b>语言的高可靠、<b class='flag-5'>开源</b>嵌入式Hypervisor

    ESP8266的非WiFi RF替代品

    Arduinos 控制的 HopeRF 模块,想知道人们对这些模块或替代品有什么经验? 许多 HopeRF 模块似乎不可用,因此不确定是否正在积极开发。 与 esp8266 相比,它们似乎更贵。 ZigBee 相比如何?我不需要加密,只需要低功耗和约 25 米的室外范围。
    发表于 05-16 08:36

    2023年使用树莓派和替代品进行深度学习

    此页面可帮助您在Raspberry Pi或Google Coral或Jetson Nano等替代品上构建深度学习模式。有关深度学习及其限制的更多一般信息,请参阅深度学习。
    的头像 发表于 05-05 09:47 2130次阅读
    2023年使用树莓派和<b class='flag-5'>替代品</b>进行深度学习