Self-hosted search, ranked by time to first result
Typesense, Meilisearch, OpenSearch and Postgres full-text ranked for product search under a million documents.

Under a million documents: Typesense or Meilisearch, pick by temperament, and you'll be serving typo-tolerant results the same afternoon. Postgres full-text if search is a checkbox, not a feature. OpenSearch only when a requirement names it. There's the verdict; the stopwatch data follows.
Criteria: time from zero to good results 35%, relevance defaults (typo tolerance, ranking) 30%, RAM appetite at 1M docs 20%, operational surface 15%. Measured on the same 800k-document product catalog, June 2026.
The table
| Rank | Engine | Time to first good result | RAM at 1M docs |
|---|---|---|---|
| 1 | Typesense | ~2 hours | ~3 GB |
| 2 | Meilisearch | ~2 hours | ~4 GB |
| 3 | Postgres FTS | ~half a day | already paid for |
| 4 | OpenSearch | ~2 days to do properly | starts at "more" |
The two-hour tier
Typesense and Meilisearch made the same bet: search engines should ship with opinions. Typo tolerance, prefix matching and sensible ranking work before you read a tuning guide, and both index our catalog in minutes on a laptop-class VM. Typesense edges ahead on memory discipline and on being a single binary with clustering; Meilisearch counters with the nicer API ergonomics and filter syntax. You will not regret either. Flip a coin, or let your favorite client library decide.
Both companies sell managed cloud versions; the self-host path is real open source (GPL for Typesense, MIT for Meilisearch), not a crippled demo, which is why they headline a self-hosted ranking.
Postgres full-text search is the sleeper. tsvector, a GIN index and
websearch_to_tsquery cover "find the order by customer name" use
cases with zero new infrastructure, and staying inside your database
means search results respect transactions. What you give up is typo
tolerance and modern ranking; users trained by two decades of Google
will notice. Feature, checkbox: know which one you're building.
The skip
OpenSearch for product search at this scale. It's a capable distributed system whose sweet spot is log analytics and genuinely large corpora, and whose cost floor (JVM heap, cluster ceremony, index lifecycle management) is a full-time relationship. Teams reach for it because the name sounds like the category; at under a million documents you'd be operating a container ship to cross a pond. If compliance or an existing logging stack puts it in the building anyway, fine, it can moonlight. Just don't start there.