Back to Paradedb

Introduction to ParadeDB and pg_search

docs/welcome/introduction.mdx

0.25.09.9 KB
Original Source

ParadeDB is a search engine built into Postgres. It's built on the pg_search extension, a single Postgres index for efficient vector/text search, BM25 scoring, filtering, and aggregates. Everything runs inside your system of record with Postgres' transactional guarantees, not in a second system you have to keep in sync.

<Note> **ParadeDB Cloud is coming soon.** We're building a fully managed ParadeDB: first-class search from Postgres, with a developer experience to match. [Join the waitlist](https://www.paradedb.com/cloud). </Note>

Who is ParadeDB for?

You're likely a good fit for ParadeDB if any of the following sound like you:

  1. Postgres is your primary database (managed or self-managed) and you'd rather build on it than around it.
  2. You've outgrown Postgres' built-in search (tsvector or pgvector) and hit performance bottlenecks or missing features with vector/text search.
  3. You're evaluating a search engine like Elasticsearch, but don't want to run (and continuously sync) a second system alongside your database.

Why ParadeDB?

For teams that already use Postgres, ParadeDB is the simplest path to one Postgres for your application data, full-text search, vector retrieval, and aggregations.

Zero ETL Required

Syncing Postgres with an external search engine like Elastic is a time-consuming, error-prone process that involves babysitting ETL pipelines and debugging data inconsistencies. ParadeDB eliminates this class of problems because search, vectors, and aggregations live right next to your data.

pg_search is a pure Postgres extension: no fork, no separate server. Install it in your primary Postgres and your search index stays current automatically: index updates happen in the same transaction as your writes, with no pipeline to maintain. If you can't install extensions on your primary, see other deployment options.

Search That Feels Like Postgres

In ParadeDB, a search query is just SQL. You use the operators and functions you already know, with full support for JOINs, so there's no need to denormalize your existing schema.

sql
-- Index a table for full-text search
CREATE INDEX search_idx ON mock_items
USING paradedb (id, description, rating)
WITH (key_field='id');

-- Rank by relevance, then filter and sort like any other query
SELECT description, pdb.score(id)
FROM mock_items
WHERE description ||| 'running shoes' AND rating > 2
ORDER BY score DESC
LIMIT 5;

ParadeDB accelerates standard SQL queries. That includes:

  • Text: relevance-ranked full-text queries like the one above.
  • Aggregations: the same index serves faceted search and aggregations, pushing filters and aggregates directly into the index instead of computing them afterward.
  • Vectors: the ParadeDB index is a high-performance, drop-in compatible version with pgvector.

One Index Behind Every Query

Behind the SQL is a single custom index: the ParadeDB index, built on Tantivy, the Rust port of Lucene. It goes toe-to-toe with dedicated search engines on full-text performance, often coming out on top. See how it's built →

As Reliable As Postgres

ParadeDB supports Postgres transactions and ACID guarantees. Data is searchable immediately after it's written, and durable thanks to Postgres write-ahead logging. See Guarantees for the details, including isolation levels and replication safety.

ParadeDB vs. Alternatives

People usually compare ParadeDB to two other types of systems: OLTP databases like vanilla Postgres and search engines like Elastic.

OLTP databaseSearch engineParadeDB
Primary roleSystem of recordSearch and retrieval engineSystem of record and search engine
ExamplesPostgres, MySQLElasticsearch, OpenSearch
Search featuresBasic FTS (no BM25, weak ranking)Rich search features (BM25, fuzzy matching, faceting, hybrid search)Rich search features (BM25, fuzzy matching, faceting, hybrid search)
Analytics featuresNot an analytical DB (no column store, batch processing, etc.)Column store, batch processing, parallelization via shardingColumn store, batch processing, parallelization via Postgres parallel workers
LagNone in a single clusterAt least network, ETL transformation, and indexing timeNone in a single cluster
Operational complexitySimple (single datastore)Complex (ETL pipelines, managing multiple systems)Simple (single datastore)
ScalabilityVertical scaling in a single node, horizontal scaling through KubernetesHorizontal scaling through shardingVertical scaling in a single node, horizontal scaling through Kubernetes
LanguageSQLCustom DSLStandard SQL with custom search operators
ACID guaranteesFull ACID compliance, read-after-write guaranteesNo transactions, atomic only per-document, eventual consistency, durability not guaranteed until flushFull ACID compliance, read-after-write guarantees
Update & delete supportBuilt for fast-changing dataStruggles with updates/deletesBuilt for fast-changing data

Production Readiness

ParadeDB launched out of the Y Combinator (YC) S23 batch and has run in production since December 2023.

ParadeDB Community, the open-source version of ParadeDB, has been deployed over 1.5 million times via its Docker image, and the pg_search extension has been installed over 250,000 times. ParadeDB Enterprise, the durable and production-hardened edition of ParadeDB, powers core search and analytics use cases at enterprises ranging from Fortune 500s to fast-growing startups. A few examples include:

  • Alibaba Cloud, the largest Asia-Pacific cloud provider, uses ParadeDB to power search inside their data warehouse. Case study available.
  • Bilt Rewards, a rent payments technology company that processed over $36B in payments in 2024. Case study available.
  • Modern Treasury, a financial technology company that automates the full cycle of money movement. Case study available.
  • Span<sup>1</sup>, one of the fastest-growing AI developer productivity platforms.
  • TCDI<sup>1</sup>, a giant in the legal software and litigation management space.

1. Case study coming soon.

Next Steps

You're now ready to jump into our guides.

<CardGroup cols={2}> <Card title="Getting Started" icon="forward-fast" href="/documentation/getting-started/install" > Get started with ParadeDB in under five minutes. </Card> <Card title="Architecture" icon="diagram-project" href="/welcome/architecture" > Learn how ParadeDB is built. </Card> <Card title="Reference" icon="magnifying-glass" href="/documentation/full-text/overview" > API reference for full text search and analytics. </Card> <Card title="Deploy" icon="server" href="/deploy/overview"> Deploy ParadeDB as a Postgres extension or standalone database. </Card> </CardGroup>