AI/TLDR

ParadeDB

Search without a second system: BM25, vectors and aggregations inside Postgres

Vector DatabasesOpen core
Language
Rust
License
AGPL-3.0
$curl -fsSL https://paradedb.com/install.sh | sh

Overview

ParadeDB adds full-text search, vector retrieval and aggregations to Postgres through the pg_search extension. Instead of running a separate search engine next to your database and keeping the two in sync, your application data and your search index live in the same Postgres instance, and the index is updated in the same transaction as the write.

The search engine underneath is Rust: Tantivy powers full-text search and BM25 scoring, Apache DataFusion handles the analytical side, and pgrx bridges the whole thing into Postgres. Vectors are indexed through the pgvector extension today, which is why the install docs tell you to install pgvector first and to create the extension with CASCADE.

You query it with ordinary SQL — a search predicate and a score function in a normal SELECT — so filtering, joins, ACID guarantees and your existing Postgres tooling all still apply. ParadeDB Community is licensed AGPL-3.0; a separately-licensed ParadeDB Enterprise edition and hosted deployment options exist alongside it.

What it does

  • BM25-scored full-text search inside Postgres, with tokenizers, token filters, highlighting and top-K ordering
  • Vector retrieval via pgvector, so keyword and embedding search sit behind the same SQL interface
  • Aggregations, facets and bucket/metric queries backed by columnar storage
  • Search indexes update transactionally with your writes — no ETL job or sync pipeline between two systems
  • Built on Tantivy, Apache DataFusion and pgrx, with fixes contributed back upstream
  • ORM integrations for Drizzle, Django, SQLAlchemy, Rails and EF Core, plus an MCP integration for AI agents

Getting started

The fastest path is the install script, which pulls a ParadeDB Docker image and drops you into psql. To add pg_search to a Postgres server you already run, install the extension package and enable it.

Try it locally in Docker

Runs ParadeDB in a fresh container and opens a psql session against it.

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

Or add pg_search to an existing Postgres

Install the release package for your platform and Postgres version, then preload the library. This example is the Ubuntu 26.04 / Postgres 18 build from the deployment docs.

bashbash
curl -L "https://github.com/paradedb/paradedb/releases/download/v0.25.3/postgresql-18-pg-search_0.25.3-1PARADEDB-resolute_amd64.deb" -o /tmp/pg_search.deb
sudo apt-get install -y /tmp/*.deb

# in postgresql.conf
shared_preload_libraries = 'pg_search'

Enable the extension

CASCADE pulls in the vector type from pgvector if it is not already installed.

texttext
CREATE EXTENSION pg_search CASCADE;

Index a table and search it

Create a ParadeDB index over the columns you want searchable and filterable, then run a normal SELECT that combines a search predicate, a SQL filter and BM25 scoring.

texttext
CREATE INDEX search_idx ON mock_items
USING paradedb (id, description, rating)
WITH (key_field='id');

SELECT description, pdb.score(id)
FROM mock_items
WHERE description ||| 'running shoes' AND rating > 2
ORDER BY score DESC
LIMIT 5;

Commands and code are distilled from the project's own documentation — always check the official repo for the latest.

When to use it

  • Add relevance-ranked product or document search to an app whose data already lives in Postgres, without standing up Elasticsearch alongside it
  • Retire a search cluster and the ETL pipeline that feeds it, so search results can never lag behind a write
  • Build hybrid retrieval for a RAG pipeline where keyword matching, vector similarity and SQL filters are all one query
  • Run faceted, aggregated search over a large table while keeping transactional guarantees on the same rows

How ParadeDB compares

ParadeDB alongside other open-source vector databases tools AI/TLDR tracks, ranked by GitHub stars.

ToolStarsWhat it does
Supabase★ 110kManaged Postgres backend whose Vector toolkit (pgvector) stores, indexes, and queries embeddings next to transactional data.
Redis Cloud★ 76.4kFully-managed Redis with built-in vector search, offering low-latency similarity and hybrid queries over any embeddings.
Milvus★ 46.2kA distributed vector database for storing and searching billions of embeddings at scale, with multiple index types and Kubernetes-native deployment.
FAISS★ 40.9kA library from Meta for efficient similarity search and clustering of dense vectors, with both exact and approximate indexes.
Qdrant★ 34.7kA Rust-based vector search engine that stores embeddings with rich payload filtering for semantic search and recommendation systems.
Chroma★ 29.3kA developer-focused vector database designed for quickly building retrieval and RAG features with a simple Python and JavaScript API.
pgvector★ 23.1kA PostgreSQL extension that adds a vector data type and similarity search so you can store and query embeddings inside an existing Postgres database.
ParadeDB★ 9.3kSearch without a second system: BM25, vectors and aggregations inside Postgres