ParadeDB:直接跑在PostgreSQL里的Elasticsearch替代品,Rust实现高性能全文搜索

项目介绍

ParadeDB是一个PostgreSQL扩展,用Rust语言编写,旨在将Elastic质量的全文搜索和数据分析能力直接带入PostgreSQL数据库。项目获得超过8,600颗GitHub星标,其核心依赖Tantivy(搜索引擎)和pgrx(Rust与Postgres桥梁)均为业界久经考验的成熟库。项目官网为 paradedb.com,提供商业托管服务。

核心特色功能

ParadeDB的核心价值在于无需引入额外的搜索服务,在熟悉的PostgreSQL环境中即可享受专业级搜索体验。支持BM25评分排序、Top K检索、高亮显示、分词器和分词过滤器等完整的全文搜索功能。

在分析能力方面,支持列式存储、聚合(Metrics和Buckets)、分面搜索(Facets)以及JOIN操作。还在持续开发中,即将支持向量搜索和混合搜索功能。

由于基于PostgreSQL生态,现有的一切ORM、备份、监控、连接池等工具均可无缝复用,学习成本极低。

安装步骤

一键安装(Linux/macOS)

curl -fsSL https://paradedb.com/install.sh | sh

Docker部署(推荐用于测试)

docker run --name paradedb   -e POSTGRES_PASSWORD=password   -p 5432:5432   paradedb/paradedb:latest

源码编译安装

git clone https://github.com/paradedb/paradedb.git
cd paradedb
cargo build --release

使用方法

连接数据库后,创建一个搜索索引:

CREATE EXTENSION IF NOT EXISTS paradedb;

CREATE TABLE articles (
  id SERIAL PRIMARY KEY,
  title TEXT NOT NULL,
  content TEXT NOT NULL,
  created_at TIMESTAMP DEFAULT NOW()
);

CALL paradedb.create_search_index(
  index_name => 'articles_search',
  table_name => 'articles',
  key_field => 'id',
  search_field => 'content'
);

插入数据并进行搜索:

INSERT INTO articles (title, content) VALUES
  ('PostgreSQL全文搜索', '介绍PostgreSQL的搜索功能'),
  ('Rust性能优化', 'Rust编程语言性能优化技巧');

SELECT * FROM articles_search.search('PostgreSQL');

适用场景

ParadeDB非常适合已有PostgreSQL作为主数据库的团队,在不引入额外技术栈的情况下获得专业搜索能力。典型场景包括:电商商品搜索、新闻资讯搜索、文档站内搜索、日志分析等。

开源协议

ParadeDB采用AGPL开源许可证(社区版)和商业许可证(企业版)。


服务支持:如有兴趣不会搭建,可以联系微信:WRYD6166,开源项目搭建10-50元。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容