E-Commerce Search Engines: Meilisearch vs. Typesense vs. OpenSearch (2026 Benchmark)
Product search drives up to 40% of digital commerce revenue, yet relying on SaaS providers like Algolia exposes fast-growing stores to compounding per-query pricing. We benchmark the three primary open-source alternatives—Meilisearch, Typesense, and OpenSearch—on a production 100,000 SKU catalog across indexing speed, sub-10ms prefix latency, RAM footprint, and 3-year self-hosting infrastructure costs.
100k SKU Performance Trial Results
To evaluate real-world e-commerce conditions, we ingested a realistic 100,000 SKU apparel and hardware catalog (featuring 12 faceted attributes, multi-variant pricing, and rich descriptions) into identical 8-vCPU cloud instances.
| Benchmark Metric | Meilisearch (v1.10) | Typesense (v27.1) | OpenSearch (v2.17) |
|---|---|---|---|
| Implementation Core | Rust + LMDB (Memory-Mapped Disk) | C++ (In-Memory Index + Raft) | Java (Lucene Distributed Cluster) |
| 100k SKU Reindex Time | 4m 12s | 1m 48s | 3m 35s |
| Prefix Search Latency (P95) | 4.2 ms | 3.8 ms | 24.6 ms |
| RAM Usage (100k Records) | 1.18 GB | 2.65 GB (In-Memory) | 7.80 GB (Heap + OS Cache) |
| Typo Tolerance Setup | Automatic Damerau-Levenshtein out-of-the-box | Configurable threshold (num_typos: 2) | Manual fuzzy queries & custom n-gram analyzers |
| Vector & Hybrid Search | Built-in REST embeddings + BM25 hybrid | Built-in vector search with remote model calls | Full k-NN plugin with HNSW & Lucene vector engines |
| Operational Overhead | Minimal (Single lightweight binary) | Low (Single binary with high-availability Raft) | High (JVM GC tuning, cluster quorum, shard sizing) |
1. Storage Architecture & Memory Consumption
How a search engine stores its inverted index dictates hosting cost and resilience during traffic spikes.
Meilisearch: Rust & Memory-Mapped LMDB
Meilisearch utilizes LMDB (Lightning Memory-Mapped Database). Instead of allocating all index data into system RAM, LMDB memory-maps data from the NVMe disk into virtual address space.
The operating system's page cache transparently keeps hot catalog keys in memory while cold product descriptions rest on disk. If the server restarts, Meilisearch starts up in under 500 milliseconds with zero index warmup delay. On our 100k SKU trial, Meilisearch consumed only 1.18 GB of active RAM.
Typesense: C++ Pure In-Memory Index
Typesense prioritizes maximum raw throughput by keeping its entire inverted index directly in RAM. While this demands more memory (2.65 GB for 100k SKUs), every single search query executes in-memory without waiting on disk reads.
Typesense also features native multi-node clustering powered by the Raft consensus algorithm, enabling automatic leader election and zero-downtime rolling node updates without external ZooKeeper or coordination daemons.
OpenSearch: Distributed JVM Lucene
Derived from Elasticsearch, OpenSearch is built for petabyte-scale document analytics and multi-tenant search. However, running a JVM cluster for a dedicated 100k SKU commerce catalog represents massive over-engineering. OpenSearch required a minimum 4 GB JVM heap plus 4 GB OS page cache, totaling nearly 8 GB of RAM before handling query load.
2. E-Commerce Relevance & Merchandising Logic
Standard full-text search ranks documents strictly by term frequency and inverse document frequency (TF-IDF / BM25). In digital retail, commercial relevance rules supersede raw lexical matches: an out-of-stock product should never outrank an in-stock bestseller simply because the title matches more words.
// Configuring Meilisearch e-commerce ranking rules
const configureSearchRules = async () => {
await meiliClient.index("products").updateRankingRules([
"words", // 1. Matched query terms
"typo", // 2. Fewest typos
"proximity", // 3. Closeness of search terms
"attribute", // 4. Matches in 'title' rank higher than 'description'
"sort", // 5. User-selected sorting (e.g. price)
"exactness", // 6. Exact matches vs partial
"in_stock:desc", // 7. Custom Rule: In-stock items prioritized
"sales_velocity:desc", // 8. Custom Rule: Commercial bestseller weighting
]);
};
Both Meilisearch and Typesense provide intuitive tie-breaking arrays where commercial attributes (in_stock, margin_score, promoted:desc) are injected directly into the ranking cascade without writing complex Lucene function scores.
3. Next.js 15 Integration & Algolia Drop-In Compatibility
Migrating away from Algolia does not require rewriting your frontend search components:
- Typesense: Offers a drop-in adapter (
typesense-instantsearch-adapter) that is 100% compatible with Algolia'sreact-instantsearchlibrary. Changing the backend requires modifying only 8 lines of configuration. - Meilisearch: Provides an official InstantSearch adapter (
@meilisearch/instant-meilisearch) with automated facet counts, hierarchical categories, and pagination.
4. Three-Year Total Cost of Ownership: Algolia SaaS vs. Self-Hosted
Algolia bills based on search requests ($0.50 per 1,000 operations). A mid-market store generating 3 million monthly search operations (including search-as-you-type keystrokes) faces compounding monthly expenses:
| Cost Category | Algolia Search SaaS | Self-Hosted Meilisearch / Typesense |
|---|---|---|
| Base Plan / Platform Fee | $0 (pay-as-you-go) | $0 (100% Open Source) |
| Search Operations (3M queries/mo) | $54,000 ($1,500/mo over 36 months) | $0 (unlimited local queries) |
| Dedicated Cloud Hosting (NVMe VPS) | $0 (managed by SaaS) | $2,160 ($60/mo 8-vCPU 16GB RAM instance) |
| Maintenance & Backup Automation | $0 | $1,440 ($40/mo monitoring & snapshots) |
| Total 3-Year Search Investment | $54,000 | $3,600 |
*Self-hosting delivers a 93.3% cost reduction ($50,400 savings) while eliminating third-party API rate limits.
5. Architectural Selection Blueprint
Select Meilisearch If:
- You want the lowest RAM footprint (under 1.5 GB for 100k products) and instant disk-backed startup.
- Your priority is exceptional out-of-the-box search-as-you-type UX with zero configuration overhead.
- You run single-node or containerized deployments alongside Medusa v2 or Saleor.
Select Typesense If:
- You require built-in multi-node high availability with automatic Raft consensus clustering.
- You are migrating directly from Algolia and want drop-in frontend adapter compatibility.
- You have sufficient RAM to host the entire catalog index in memory for sub-4ms response times.
Select OpenSearch If:
- Your catalog exceeds 5,000,000 SKUs requiring multi-terabyte distributed sharding.
- You need to unify enterprise log analytics, security events, and product search on a single cluster.
- You have dedicated DevOps engineers to tune JVM garbage collection and shard rebalancing.
Related Architectural Teardowns
Tired of Compounding SaaS Search Bills?
Buildeon engineers replace costly proprietary search subscriptions with high-performance self-hosted Meilisearch and Typesense clusters. Book a technical discovery audit to benchmark your catalog.