Self-hosted search, ranked by time to first result

Typesense, Meilisearch, OpenSearch and Postgres full-text ranked for product search under a million documents.

The bench2 min readDatabases

Ranked bars of setup time and query latency for four search options

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

RankEngineTime to first good resultRAM at 1M docs
1Typesense~2 hours~3 GB
2Meilisearch~2 hours~4 GB
3Postgres FTS~half a dayalready paid for
4OpenSearch~2 days to do properlystarts 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.