Postgres Full-Text Search
Built into Postgres. Free, no separate service, good enough for most apps.
VISIT POSTGRES FULL-TEXT SEARCHQuick facts
- CategoryDatabase-native FTS
- EnginePostgres
- PricingOpen source
- LicensePostgreSQL License
- Created2008
- GitHub starsclosed
- Vector supportYes
- Edge-readyNo
What it is
Postgres has had built-in full-text search since 2008 with tsvector / tsquery. GIN indexes, ranking with ts_rank, multi-language stemming via dictionaries. Pair with pg_trgm for fuzzy / typo tolerance and pgvector for hybrid lexical+vector. Not as fast as dedicated engines but sufficient for most apps.
Best for
- Apps already on Postgres where adding a search service is overhead
- Mid-scale workloads (under ~10M rows) where Postgres performance suffices
- Hybrid lexical + vector search via pg_trgm + pgvector + tsvector together
- Cost-conscious teams that want zero additional infrastructure
When not to pick it
Skip Postgres FTS for genuine search-product workloads (e-commerce search, content search at scale). Skip if you need typo tolerance comparable to Algolia / Meilisearch.
My take
Postgres FTS is underrated. For most apps with Postgres in the stack, it is a fine default. Graduate to Typesense / Meilisearch when search becomes a real product feature rather than a side concern.
Links
Compare Postgres Full-Text Search side-by-side
Similar tools you should also consider
If Postgres Full-Text Search is your pick — the next conversation is short
The 30-min call is where your search choice becomes a real architecture, a relevance-tuning plan, and a price range you can take to your stakeholders.