pg_search, pg_bestmatch, pg_bm25, and other Postgres extensions for advanced full-text search with BM25 ranking. Ranked by GitHub stars.
Full text search for PostgreSQL using BM25
a parser for full-text search of Chinese
Use Groonga as index, fast full text search platform for all languages!
Use Groonga as index, fast full text search platform for all languages!
A postgresql extension for bm25 ranking algorithm
create 2-gram (bigram) index for faster full text search.
create 2-gram (bigram) index for faster full text search.
Generate BM25 sparse vector inside PostgreSQL
Czech Hunspell Dictionary
German Hunspell Dictionary
en_US Hunspell Dictionary
French Hunspell Dictionary
Nepali Hunspell Dictionary
Dutch Hunspell Dictionary
Norwegian (norsk) Hunspell Dictionary
Portuguese Hunspell Dictionary
Russian Hunspell Dictionary
Russian Hunspell Dictionary (from AOT.ru group)
Russian Hunspell Dictionary (from AOT.ru group)
Tokenizers for full-text search
determine similarities and distance between strings
text similarity measurement and index searching based on trigrams
text similarity measurement and index searching based on trigrams
Full-text search extensions go beyond Postgres' built-in tsvector and to_tsquery — they add modern ranking algorithms (BM25, BM25F), faster index types, and richer query syntax. The most prominent is pg_search from ParadeDB, which embeds a Tantivy (Rust) search engine directly in Postgres for sub-100ms relevance-ranked queries over millions of rows. Smaller extensions like pg_bestmatch, prefix, and pg_trgm cover BM25 scoring on heap tables, prefix-matching with GiST indexes, and fuzzy string matching respectively. Together they let teams handle search workloads without standing up Elasticsearch or Meilisearch alongside their primary database.
Reach for an FTS extension when tsvector ranking falls short — multi-field weighted search, fuzzy/typo tolerance, BM25 relevance, faceted filters, or sub-100ms response over millions of documents. tsvector + ts_rank is fine for blog search and small catalogs (under ~100k docs). pg_search is the upgrade path for product catalogs, document search, and any case where Elasticsearch was the alternative. If you need real-time indexing of arbitrary JSON, distributed cluster scale across regions, or hybrid lexical-plus-vector search beyond what pg_search supports, then Elasticsearch or Meilisearch remain better fits — but most teams can stay on Postgres with pg_search.
1bench is a modern GUI client for PostgreSQL — install extensions, write queries, and inspect schemas without leaving the IDE.
Try 1bench for PostgreSQL