9.2k stars · AGPL-3.0 · v0.25.6 (2026-08-27) · Track this in Scout
BM25 and full-text search that live inside Postgres, not in a separate Elasticsearch cluster that also needs backups.
▶Repo detailsthe review · specs · pros & cons
What it is
A PostgreSQL extension that adds Elasticsearch-quality search (BM25, full-text, faceting) as ordinary SQL. Written by a small team, AGPL-3.0 for the community edition.
What it is good for. A stack that has pgvector (Ed.2 #11) for semantic search often has nothing serious for keyword search. Pagefind (Ed.7 #9) is static-site search only. When a user types "the polymorphism thing my colleague mentioned" into the top of a chat, semantic-only search can miss the specific word; BM25 catches it. ParadeDB adds that without a second server, so nothing about the backup story (restic, Ed.8 #11) changes. It rules out Elasticsearch, which is what a "startup engineer" would install by default and quietly regret.
- No new server — everything stays in the Postgres that is already backed up nightly
- The right complement to pgvector: semantic AND keyword search from the same query planner
- AGPL: fine for a self-hosted product — the code stays yours
- Postgres extension — check Postgres superuser access before assuming you can install
- AGPL: same rule as pgvector — self-host fine, embedding in a closed distribution is not
- Small maintainer team; extension breakage across Postgres major upgrades is a real risk
Elasticsearch, and the second datastore it drags in
pgvector — keyword search and semantic search over the same columns, in one query
