postgres-fts.html

Postgres Full-Text Search

Built into Postgres. Free, no separate service, good enough for most apps.

VISIT POSTGRES FULL-TEXT SEARCH

Quick 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.