ParadeDB adds cloud-native vector and full-text search capabilities to PostgreSQL via a simple CREATE EXTENSION statement.
ParadeDB is a PostgreSQL extension that layers vector similarity search and distributed full-text search on top of vanilla Postgres. It lets cloud-native apps stay on a single database instead of adding separate search services.
Install the extension package in your container image or VM, then run CREATE EXTENSION parade;
using a superuser role. Helm charts for Kubernetes often expose a postInit
SQL hook for this.
parade.indexing_parallelism controls worker threads. parade.default_distance_metric sets cosine
, euclidean
, or dot
for vector search. Tune them with ALTER SYSTEM
or per-session SET
.
Add a vector
column to the Products
table. Populate it with 1536-dimension OpenAI embeddings.
ALTER TABLE Products ADD COLUMN embedding vector(1536);
UPDATE Products
SET embedding = openai_embed(name || ' ' || description);
Use the <=>
operator supplied by ParadeDB.
SELECT id, name, price
FROM Products
ORDER BY embedding <=> openai_embed('wireless earbuds')
LIMIT 5;
Because ParadeDB lives inside Postgres, you can write one query that ranks products then joins to order line items for revenue analytics.
WITH ranked AS (
SELECT id AS product_id
FROM Products
ORDER BY embedding <=> openai_embed('laptop sleeve')
LIMIT 10
)
SELECT p.name, SUM(oi.quantity) AS units_sold
FROM ranked r
JOIN OrderItems oi ON oi.product_id = r.product_id
JOIN Products p ON p.id = r.product_id
GROUP BY p.name;
Reindex after bulk inserts or when recall degrades. Run SELECT parade.reindex('Products_embedding_idx');
during low-traffic windows.
Use read-replicas for heavy search, pin ParadeDB worker memory with Kubernetes limits, and store embeddings in a separate tablespace backed by fast NVMe.
Wrong distance metric: using cosine for unit-normalized vectors is fine, but dot product is faster if vectors are already normalized. Change via ALTER INDEX ... SET (parade.distance_metric='dot')
.
Ignoring autovacuum: large embedding columns bloat quickly. Tune autovacuum_vacuum_scale_factor
lower to prevent index slowdown.
Yes, ParadeDB 0.10+ supports PostgreSQL 13-16.
Only if the provider lets you load custom extensions. For now, self-hosted Postgres or AWS RDS Custom is required.
Yes, it’s licensed under Apache 2.0.
Up to 16 KB per row; typical models use 768-1536 dimensions.