Why we stopped using Elasticsearch for product search
Elasticsearch was the right tool when we had 40 million products and a five-engineer team dedicated to search. After splitting the catalog and losing two of those engineers to a reorg, the cost equation flipped.
Postgres full-text with tsvector generated columns and a GIN index on the right combined vector gave us 22ms p95 on our 8 million remaining rows — slower than Elasticsearch at p50 but faster at p99 because of the variance Elasticsearch added during shard rebalances.
The big win wasn't latency or even cost. It was operational simplicity. One fewer cluster to patch. One fewer credential rotation. One fewer "the cluster is yellow again" Slack thread.
This is not a manifesto. Elasticsearch is still the right answer at the catalog sizes and query mixes it was built for. We just weren't at that size anymore.