Shopware 8 min read Published: By Björn Teßmann

Meilisearch for Shopware: A Shop Search That Finds What Customers Mean

Shopware's default search returns zero results for "cable tyes", and the official alternative, Elasticsearch, is a size too big for many mid-sized merchants. There is a third option in between – one we have come to appreciate in our projects.

In short

Meilisearch is an open-source search engine written in Rust that retrofits Shopware shops with typo tolerance, facets, and response times under 50 milliseconds – at a fraction of the operational cost of Elasticsearch. It connects through ready-made plugins or a custom integration and can be hosted entirely on your own infrastructure.

1 Why the default search loses customers

Visitors who use the search box usually know fairly precisely what they want to buy. These are exactly the visitors Shopware's default search serves worst. It runs on the shop's MySQL database and essentially compares character strings: a typo like "cable tyes" instead of "cable ties" leads nowhere, word variants and synonyms go unrecognized, and the order of results often has little to do with relevance.

With a small catalog this barely registers. From a few thousand products upward it becomes noticeable: the search slows down because every query runs against the product database, and result quality drops because, without real ranking, everything that contains the string somewhere comes back. You can see the outcome in any search-term report: queries with zero results even though the product is in stock. Every one of those is a visitor who wanted to buy and could not.

2 Elasticsearch: the official answer and its cost

Shopware knows this problem and therefore officially supports Elasticsearch and OpenSearch as search backends. That gives the shop a mature full-text search with ranking, analyzers, and practically unlimited scaling.

The cost is operations. Elasticsearch is a Java application that runs as its own service or cluster, demands significant memory, and wants continuous care: version updates, index mappings, analyzer configuration, monitoring. For an enterprise shop with its own ops team, that is routine. For a mid-sized merchant whose shop runs with a managed hoster, it is an additional system nobody in the company truly masters – which is why it often never gets introduced at all. The default search then simply stays the way it is.

3 What Meilisearch does differently

Meilisearch is an open-source search engine written in Rust that fills exactly this gap. It ships as a single binary – no Java, no mandatory cluster – and runs on a small server or in a container next to the shop. Its defaults are tuned for end-user search, so a freshly set-up index already ranks sensibly before anyone has touched a dial.

Included out of the box: typo tolerance of up to two errors per word, facets and filters for the results page, synonyms, highlighting of matches, and response times that typically stay under 50 milliseconds – fast enough for search-as-you-type. Recent versions also support hybrid search: keyword search combined with semantic search via vector embeddings, connected to OpenAI, Hugging Face, or locally running models via Ollama.

Default search Elasticsearch Meilisearch
Typo tolerance No Configurable (fuzzy query) Active by default
Separate service required No (runs in MySQL) Yes, JVM service or cluster Yes, one lightweight binary
Operational effort None High (updates, mappings, monitoring) Low
Semantic search No Yes, with custom setup Yes, embedders built in
Best suited for Small catalogs Enterprise, dedicated ops team Mid-sized shops, product search focus

4 Getting Meilisearch into a Shopware shop

There are several routes. The Shopware Store lists a Meilisearch extension that indexes products, manufacturers, and categories and can fall back to Elasticsearch if Meilisearch is unreachable; community plugins exist on GitHub and Packagist. For shops with special requirements – custom entities, specific ranking logic, multilingual catalogs – we build the integration directly against the Shopware data layer: an indexer transfers the relevant fields to Meilisearch, and the storefront search queries the search index instead of the database.

The real work lies less in the technology than in index design: which fields go into the search, how are they weighted, which synonyms does the catalog need, which filters belong on the results page? That is configuration work done together with the merchant, because that is where the knowledge about what customers actually search for lives. A good starting point is the report of past search queries – especially the unsuccessful ones.

An honest note

Meilisearch is not the right choice in every case. If you already run and master Elasticsearch in-house, there is little reason to switch. And if you need log analysis, reporting, or complex aggregations on the same system alongside search, Elasticsearch serves you better – Meilisearch is deliberately an end-user search engine, not a data analysis tool. Its strength lies exactly where most shops stand: the product search gets better without the company taking on a new piece of infrastructure to run.

5 Beyond Shopware

Meilisearch is not limited to shops. In Laravel applications it is directly usable via Laravel Scout as an officially supported search driver – so we also use it in custom software projects, for instance for search in customer portals or internal data sets. And as with our automation projects built on n8n: Meilisearch runs fully self-hosted on your own infrastructure if you wish. Product data and search queries then stay in-house, which keeps the GDPR assessment simple.

If your shop search currently hides more than it finds, we are happy to look at your search-term report together. What else we build around Shopware 6 and how a migration to Shopware 6 works is covered in detail elsewhere on this site.

Frequently asked questions about Meilisearch

Does Meilisearch need its own server?

Meilisearch is a single binary written in Rust and runs on a small virtual server or in a container next to the shop. In managed hosting setups it is operated as its own service alongside Shopware. Meilisearch Cloud is available as a hosted alternative.

Is Meilisearch a full Elasticsearch replacement?

For product search in the shop: yes. For everything else Elasticsearch is used for – log analysis, complex aggregations, reporting – no. Meilisearch concentrates on search for end users. If on-site search is what you need, you get it with far less operational overhead.

Does the typo tolerance work in German?

Yes. The tolerance works at character level and forgives up to two errors per word by default, regardless of language. Configurable synonyms cover trade terms, abbreviations, and the quirks of your product range on top of that.

How does the product data get into the index?

Through a plugin or a custom integration that hooks into the Shopware data layer. The initial indexing transfers products, manufacturers, and categories into the Meilisearch index; after that, changes to the catalog are kept in sync. The shop remains the leading system – the index can be rebuilt at any time.

Can the search understand what customers mean, not just what they type?

Yes, optionally. Meilisearch supports hybrid search: classic keyword search combined with semantic search via vector embeddings, connected to OpenAI, Hugging Face, or locally hosted models via Ollama. A query like "gift for garden lovers" then surfaces matching products even if no product text contains those words.

Improve your shop search?

In a first call, we take a look at your zero-result search queries and tell you what a better search would concretely change in your shop.

Related Articles