YC S23 投了一個(gè)新項(xiàng)目ParadeDB[1], 非常有意思。他們的 Slogan 是 “Postgres for Search & Analytics —— Modern Elasticsearch Alternative built on Postgres”。就是用于搜索和分析的 PostgreSQL,旨在成為 Elasticsearch 的替代。
PostgreSQL 的生態(tài)確實(shí)越來(lái)越繁榮了,在基于 PG 的擴(kuò)展與衍生中,我們已經(jīng)有了基于 MongoDB 開源替代 —— FerretDB,SQL Server 開源替代 Babelfish,F(xiàn)irebase 開源替代 Supabase,AirTable 開源替代 NocoDB,等等等等,現(xiàn)在又多了 ElasticSearch 開源替代 —— ParadeDB。

《PGSQL x Pigsty: 數(shù)據(jù)庫(kù)全能王來(lái)了》
ParadeDB 實(shí)際上是由三個(gè) PostgreSQL 擴(kuò)展組成:pg_bm25,pg_analytics,以及pg_sparse。這三個(gè)擴(kuò)展都可以獨(dú)立使用了。應(yīng) ParadeDB 創(chuàng)始人所托,我已經(jīng)將這幾個(gè)擴(kuò)展打好包(v0.5.6),并將會(huì)在 Pigsty 的下個(gè) Release v2.6 中默認(rèn)收錄,讓用戶能夠開箱即用。
我翻譯了 ParadeDB 的官網(wǎng)介紹與四篇博客文章,為您介紹這個(gè) PostgreSQL 生態(tài)的新星。今天是第一篇 —— ParadeDB 概覽
ParadeDB
我們榮幸地向您介紹 ParadeDB:針對(duì)搜索場(chǎng)景優(yōu)化的 PostgreSQL 數(shù)據(jù)庫(kù)。ParadeDB是第一個(gè)旨在成為 Elasticsearch 替代的 Postgres 數(shù)據(jù)庫(kù)構(gòu)建,被設(shè)計(jì)為可以在PG表上進(jìn)行閃電般快速的全文檢索、語(yǔ)義檢索、以及混合檢索。
ParadeDB解決什么問(wèn)題?
對(duì)于許多組織而言,搜索依然是一個(gè)未解問(wèn)題 —— 盡管有像 Elasticsearch 這樣的巨頭存在,但大多數(shù)與其打過(guò)交道的開發(fā)者都知道,運(yùn)行、調(diào)優(yōu)和管理 Elasticsearch 是多么蛋疼。雖然也有其他的搜索引擎服務(wù),但在現(xiàn)有數(shù)據(jù)庫(kù)上粘連對(duì)接這些外部服務(wù),會(huì)引入更多重建索引和數(shù)據(jù)復(fù)制的復(fù)雜難題與成本。
那些追求統(tǒng)一權(quán)威數(shù)據(jù)源與搜索引擎的開發(fā)者轉(zhuǎn)向了 PostgreSQL,PG 已經(jīng)通過(guò)tsvector提供了基本的全文檢索能力,也通過(guò)pgvector提供了向量語(yǔ)義檢索能力。這些工具也許對(duì)于簡(jiǎn)單用例和中等大小的數(shù)據(jù)集來(lái)說(shuō)很好使,但當(dāng)表變大或查詢變得復(fù)雜時(shí)就有些不夠用了:
1.大表上的排序和關(guān)鍵詞搜索非常緩慢2.不支持 BM25 計(jì)算3.沒(méi)有混合檢索支持,將向量搜索與全文搜索的技術(shù)4.沒(méi)有實(shí)時(shí)搜索 — 數(shù)據(jù)必須手動(dòng)重新索引或重新嵌入5.對(duì)復(fù)雜查詢?nèi)绶置婊蛳嚓P(guān)性調(diào)優(yōu)的支持有限
到目前為止,我們已經(jīng)目睹了許多工程團(tuán)隊(duì)用很勉強(qiáng)的方式在 Postgres 上疊加了一套 Elasticsearch,隨即因?yàn)楹笳咛^(guò)于臃腫、昂貴或復(fù)雜,而最終放棄。我們?cè)谙耄喝绻?Postgres 本身就帶有 ElasticSearch 水平的搜索會(huì)發(fā)生什么?那么開發(fā)者就不會(huì)有這種兩難選擇了 —— 統(tǒng)一使用 PostgreSQL 但搜索能力受限,還是使用事實(shí)源和搜索引擎兩種獨(dú)立的服務(wù)?
ParadeDB適用于誰(shuí)?
Elasticsearch 擁有廣泛的應(yīng)用場(chǎng)景,但我們并不企圖一蹴而就地覆蓋所有場(chǎng)景——至少現(xiàn)階段不是。我們更傾向于專注于一些核心場(chǎng)景 —— 專為那些希望在 PostgreSQL 上進(jìn)行搜索的用戶服務(wù)。對(duì)于以下情況,ParadeDB 會(huì)是您的理想選擇:
?希望使用單一 Postgres 作為事實(shí)來(lái)源,厭惡在多個(gè)服務(wù)之間搬運(yùn)復(fù)制數(shù)據(jù)。?希望在不損害性能與可伸縮性的前提下,對(duì)存儲(chǔ)在 Postgres 中的海量文檔進(jìn)行全文搜索。?希望 ANN/相似度搜索與全文搜索相結(jié)合,從而獲得更精準(zhǔn)的語(yǔ)義匹配效果
譯者注:在 Clickbench 中,ParadeDB 的分析性能表現(xiàn)相當(dāng)不錯(cuò),目前在 PG 生態(tài)的分析類插件中拔得頭籌。

ParadeDB產(chǎn)品介紹
ParadeDB 是一個(gè)完全托管的 Postgres 數(shù)據(jù)庫(kù),目前任何其他 PG 供應(yīng)商都還沒(méi)有提供此類全文索引和搜索 PG 表的能力:

與 AWS RDS 等托管服務(wù)不同,ParadeDB 是一個(gè) PostgreSQL 擴(kuò)展插件,不需要任何設(shè)置,可以與整個(gè) PG 生態(tài)集成,并完全可定制。ParadeDB 是開源的(AGPLv3),并提供了一個(gè)簡(jiǎn)單的 Docker Compose 模板以滿足需要自建/定制的開發(fā)者的需求。
ParadeDB 的構(gòu)建方式
ParadeDB 的核心是一個(gè)帶有自定義擴(kuò)展的標(biāo)準(zhǔn) Postgres 數(shù)據(jù)庫(kù),這些擴(kuò)展使用 Rust 編寫,引入了增強(qiáng)的搜索能力。
ParadeDB 的搜索引擎基于 Tantivy 構(gòu)建,Tantivy 是受 Apache Lucene 啟發(fā)的開源 Rust 搜索庫(kù)。其索引作為原生的 PG 索引存儲(chǔ)在PG中,從而避免了繁瑣的數(shù)據(jù)復(fù)制/ETL工作,并同時(shí)可以確保事務(wù) ACID。
ParadeDB 為 Postgres 生態(tài)提供了一個(gè)新擴(kuò)展:pg_bm25。pg_bm25使用 BM25 評(píng)分算法在 Postgres 中實(shí)現(xiàn)了基于 Rust 的全文搜索。ParadeDB 會(huì)預(yù)裝這個(gè)擴(kuò)展插件。
下一步是什么?
ParadeDB 的托管云版本目前處于 PrivateBeta 階段。我們的目標(biāo)是在 2024 年初推出一個(gè)自助服務(wù)的云平臺(tái)。如果你想在此期間訪問(wèn) PrivateBeta 版本,歡迎加入我們的等待名單[2]。
我們核心團(tuán)隊(duì)的重點(diǎn)是開發(fā) ParadeDB 的開源版本,將在 2023 年冬季推出。
我們 Build in Public,并很高興能與整個(gè)社區(qū)分享 ParadeDB。歡迎關(guān)注我們,在未來(lái)的博文中我們會(huì)進(jìn)一步詳細(xì)介紹 ParadeDB 背后的有趣技術(shù)挑戰(zhàn)。
審核編輯:黃飛
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
4020瀏覽量
68353 -
SQL Server
+關(guān)注
關(guān)注
0文章
21瀏覽量
13640
原文標(biāo)題:ParadeDB:首個(gè)基于Postgres的Elasticsearch開源替代、采用Rust編寫
文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
三防漆稀釋劑替代品對(duì)比:優(yōu)缺點(diǎn)+環(huán)保選擇 |鉻銳特實(shí)業(yè)
Neway電機(jī)方案的替代兼容性體現(xiàn)在哪些方面
從0到1搭建實(shí)時(shí)日志監(jiān)控系統(tǒng):基于WebSocket + Elasticsearch的實(shí)戰(zhàn)方案
2025開放原子開發(fā)者大會(huì)旋武開源社區(qū)Rust分論壇成功舉辦
深開鴻助力打造深圳首個(gè)面向開源鴻蒙的開發(fā)者培訓(xùn)基地
固態(tài)繼任:傾佳電子SiC MOSFET為何是現(xiàn)代電力系統(tǒng)中機(jī)械繼電器的理想替代品的分析報(bào)告
RT-Thread 遇上 Rust:安全內(nèi)核 RusT-Thread 的誕生
Rust編寫的首個(gè)Postgres基礎(chǔ)Elasticsearch開源替代品問(wèn)世
評(píng)論