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

    文章

    3800

    浏览量

    64402
  • SQL Server
    +关注

    关注

    0

    文章

    20

    浏览量

    13434

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

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

收藏 人收藏

    相关推荐

    Elasticsearch 再次开源

    Elasticsearch 和 Kibana 又可以被称为开源了。很难表达这句话让我有多高兴。我激动得简直要跳起来了。我们 Elastic 的所有人都是如此。开源是我的 DNA。这也是Elastic的DNA。能够再次将
    的头像 发表于 11-13 12:14 139次阅读
    <b class='flag-5'>Elasticsearch</b> 再次<b class='flag-5'>开源</b>

    爱普生停产产品/替代品

    产品名称启动(计划)最后购买(计划)最后装运(计划)推荐替代方案原因EG-2121CAJun/2026EndofJun/2027EndofDec/2027SG70
    的头像 发表于 10-11 11:09 493次阅读
    爱普生停产产品/<b class='flag-5'>替代品</b>

    汽车应用中有刷DC电机驱动的继电器替代品

    电子发烧友网站提供《汽车应用中有刷DC电机驱动的继电器替代品.pdf》资料免费下载
    发表于 09-30 10:29 1次下载
    汽车应用中有刷DC电机驱动的继电器<b class='flag-5'>替代品</b>

    FCB-CV7520一体化机芯的卓越升级替代品——索尼FCB-EV9520L

    在影像技术领域,索尼再次以其卓越的创新实力,推出了FCB-EV9520L一体化机芯,作为凯茉锐FCB-CV7520的升级替代品,这款新品在多个方面实现了显著的突破与提升。
    的头像 发表于 09-26 11:07 278次阅读
    FCB-CV7520一体化机芯的卓越升级<b class='flag-5'>替代品</b>——索尼FCB-EV9520L

    如何用Rust编写一个ChatGPT桌面应用(保姆级教程)

    用IDEA开发的java仔) 安装 Rust 语言工具链:首先,请确保你已安装了 Rust 编程语言工具链,包括 Rust 编译器 (rustc) 和包管理工具 (cargo)。可以通过访问
    的头像 发表于 09-25 11:19 356次阅读
    如何用<b class='flag-5'>Rust</b><b class='flag-5'>编写</b>一个ChatGPT桌面应用(保姆级教程)

    tlc4502的替代品有哪些?

    由于设计需要,要使用tlc4502的dip8封装的芯片,在网上没有找到tlc402dip8的芯片,卖家说是军品,下我想咨询一下,可以在ti的运放找一个替代的,我查了tlc272可以吗?谢谢。或者其他的运放,dip8的与402的管脚一致的。
    发表于 09-25 06:34

    如何考虑将TI Smart DAC作为555定时器的替代品

    电子发烧友网站提供《如何考虑将TI Smart DAC作为555定时器的替代品.pdf》资料免费下载
    发表于 09-14 11:12 0次下载
    如何考虑将TI Smart DAC作为555定时器的<b class='flag-5'>替代品</b>

    LM3080N的替代品有哪些?

    有这个芯片LM3080N的替代品没? 帮人询问呢。谢谢。
    发表于 09-14 08:46

    请问什么型号的放大器可以替代ISO100AP呢?

    您好!由于ISO100AP已停产,所以现在需要找到一款合适的替代品。请问什么型号的放大器可以替代ISO100AP呢?请麻烦推荐一款!谢谢!
    发表于 09-14 08:29

    请问这是个电源,隔离器,还是什么别的产品?客户需要功能一样的替代品

    客户发来的这个,说要找替代品 我是外行,德文文档里写的是开关电源,但跟市面上的又不大一样 从端子看来又像是信号隔离器
    发表于 06-27 14:22

    TDK(东电化)超高压陶瓷电容的国产替代——赫威斯电容HVC Capacitor

    本文用以欧洲客户的实际应用和反馈为基础,详细阐明TDK超高压陶瓷电容和国产替代品之间的电性能,内部构造以及商务配合上的差异,为国内广大电器电子工程师提供TDK螺栓型陶瓷电容的理想替代品,及比其目录标称性能参数更高的选项。
    的头像 发表于 05-08 18:01 1385次阅读
    TDK(东电化)超高压陶瓷电容的国产<b class='flag-5'>替代</b>——赫威斯电容HVC Capacitor

    数字化仪:为何成为示波器的理想替代品?——PCIe8910M

    在现代科技领域,数字化仪逐渐成为示波器的理想替代品。数字化仪具备诸多特点,使其在多个应用场景下表现出色,逐渐取代传统的示波器。本期文章将探讨数字化仪相对于示波器的优势,以及其哪些特点使其成为示波器
    的头像 发表于 04-15 11:21 647次阅读
    数字化仪:为何成为示波器的理想<b class='flag-5'>替代品</b>?——PCIe8910M

    Allegro ACS712霍尔电流传感器的卓越替代品

    HAL910:Allegro ACS712霍尔电流传感器的卓越替代品 在工业、消费类及通信类设备中,电流传感器扮演着至关重要的角色。而今天,我们要为大家介绍一款能够完美替代Allegro ACS712的高性能霍尔电流传感器——HAL910。
    的头像 发表于 03-13 14:02 679次阅读

    Vue团队发布Rust编写JavaScript打包工具Rolldown

    据悉,Rolldown作为Rollup.js的替代品,由字节跳动的OXc工具集支持,具有与Rollup兼容的APIs以及插件接口。该产品预计将成为未来Vite项目的首选打包工具。
    的头像 发表于 03-11 09:58 770次阅读

    微软正开发英伟达网卡的替代品

    微软公司,全球科技巨头,正在研发一种新型网卡,旨在提升其自研人工智能芯片Maia的性能,并减少对英伟达产品的依赖。据称,这款新型网卡的设计和功能与英伟达的ConnectX-7网卡相似,被看作是后者的潜在替代品
    的头像 发表于 02-21 11:06 816次阅读