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。
《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 生態的分析類插件中拔得頭籌。
ParadeDB產品介紹
ParadeDB 是一個完全托管的 Postgres 數據庫,目前任何其他 PG 供應商都還沒有提供此類全文索引和搜索 PG 表的能力:
與 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文章
3926瀏覽量
66203 -
SQL Server
+關注
關注
0文章
21瀏覽量
13544
原文標題:ParadeDB:首個基于Postgres的Elasticsearch開源替代、采用Rust編寫
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何在Linux環境下高效安裝部署和配置Elasticsearch
超級電容是電池的替代品,你認同嗎?

打包工具Rolldown 1.0.0-beta.1發布
Elasticsearch 再次開源

變阻器的未來發展趨勢和前景如何?是否有替代品出現?
FCB-CV7520一體化機芯的卓越升級替代品——索尼FCB-EV9520L

如何用Rust編寫一個ChatGPT桌面應用(保姆級教程)

tlc4502的替代品有哪些?
如何考慮將TI Smart DAC作為555定時器的替代品

評論