Scaling e-commerce search with Meilisearch
Migrating from Algolia or Elasticsearch to Meilisearch requires managing differences in ranking logic and memory usage. Developers can optimize performance by using chunked indexing of 10,000 to 50,000 documents and ensuring primary keys follow specific regex requirements.
Migration complexities
Algolia uses a usage-based model where costs increase with every search request and record. A single shopper typing "headphones" in Algolia can generate ten requests, which can escalate bills during traffic spikes. On the Grow tier, costs run roughly $0.50 per 1,000 additional search requests and $0.40 per 1,000 records. For companies requiring AI features, the Grow Plus tier charges $1.75 per 1,000 additional requests, while the Elevate plan requires custom annual contracts that start around $50,000. Algolia’s usage-based pricing can escalate quickly for projects with large datasets or high query volumes. Meilisearch provides a different math where Cloud plans use document-based pricing, such as the Pro tier costing between $200 and $300 for 1 million documents and 10 million searches. Meilisearch Cloud also provides usage-based plans starting at $20 per month. Teams migrating from Algolia to Meilisearch often expect identical search results, but ranking implementations differ between the two engines. Algolia’s proprietary ranking logic and merchandising features like Query Rules and Personalization do not have direct Meilisearch equivalents. If your current e-commerce workflow relies heavily on Algolia’s proprietary merchandising features like Query Rules or Personalization, you must plan to rebuild that logic manually because Meilisearch does not provide a direct rule engine for those functions. Records in Algolia become documents in Meilisearch, and most index settings like searchable attributes and synonyms map via translation functions. Users with InstantSearch can swap the client with an official adapter to maintain the widget tree. Will the shift in relevance ranking affect your conversion rates?
Technical configuration errors
Incorrect primary key selection causes indexing failures. Every document requires a unique, stable primary key that matches the regex ^[a-zA-Z0-9_-]+$. If your Algolia objectIDs contain slashes or spaces, you must sanitize them into a clean ID field before pushing to the new engine. Users also struggle with typo tolerance if they do not understand the word size requirements. The engine requires a word to have at least 5 characters to tolerate 1 typo and 9 characters to tolerate 2 typos. A query term having the first character as a typo counts as 2 typos rather than 1 to help speed up the search response. One user report for version 1.41.0 indicated that typo tolerance failed entirely once an index reached 1,000 documents. By using the disableOnAttributes parameter, developers can prevent the engine from applying typo tolerance to specific fields like product titles. You can also use disableOnWords to stop the engine from applying typo tolerance to certain query terms. For large catalogs, avoid overwhelming the server by using chunked indexing to ensure the system remains stable during heavy ingestion tasks. Aim for batches of 10,000 to 50,000 documents per chunk to maintain performance.
Infrastructure and scale
Meilisearch provides a lightweight alternative to the high memory requirements of Elasticsearch. An idle Elasticsearch cluster can consume 1.5 GB of memory, which is 50% more than its heap size. Meilisearch uses a single Rust binary that manages data through a memory-mapped LMDB storage engine, which can use as little as 1/10th of the memory required by Elasticsearch. The Community Edition operates as a single-node architecture, which lacks the high availability and sharding capabilities found in the Enterprise Edition. You can use the Enterprise Edition to access multi-node capabilities and geographically routed reads. This creates a significant gap from Elasticsearch, which requires dedicated expertise to manage clusters, handle scaling, and prevent issues like split-brain scenarios. While Elasticsearch handles petabyte-scale data, Meilisearch has grown to over 47,000 GitHub stars and handles hundreds of millions of documents in its Community Edition while delivering sub-50ms response times.