Magento search relies on an external search engine, either Elasticsearch or OpenSearch, to index your product catalog and return results to shoppers. Since Adobe Commerce 2.4, every installation must use one of these engines; the older MySQL-based search is no longer an option. Understanding how product data flows from your catalog into that search engine, and how attributes and ranking influence what shoppers see, is key to getting relevant results on your storefront.
The Required Search Engine Backend
Starting with version 2.4, Adobe Commerce and Magento Open Source require either Elasticsearch or OpenSearch as the catalog search solution. You must install and configure one of these before you install Magento itself. OpenSearch support was added in version 2.4.4, and because OpenSearch is a compatible fork of Elasticsearch, the configuration steps are nearly identical.
Both engines work the same way at a high level: they maintain a dedicated search index that sits outside your MySQL database. When a shopper types a query, Magento sends that query to Elasticsearch or OpenSearch, which scores and ranks matching products, then returns the results. This architecture is far faster than querying your relational database directly, especially for stores with thousands of SKUs, because these engines are purpose-built for full-text search.
How Product Data Gets Indexed
Indexing is the process Magento uses to transform raw catalog data (products, categories, prices, inventory) into optimized lookup tables that the search engine can query quickly. Without indexing, Magento would need to recalculate things like product visibility, pricing tiers, and category assignments on every page load.
When you save or update a product, Magento needs to push those changes into the search index. It does this through one of two indexing modes:
- Update on Save: The index tables update immediately whenever you change a product, category, or other relevant entity. This keeps search results current in real time but can slow down save operations on large catalogs.
- Update by Schedule: Changes are logged in a changelog table and processed later by a cron job. Magento automatically creates MySQL triggers (for inserts, updates, and deletes) that write entries into these changelog tables. On each cron run, the system checks which entity IDs have changed since the last run and reindexes only those records.
For most stores, “Update by Schedule” is the better choice. It batches changes together so your admin panel stays responsive, and the cron job typically runs every minute or few minutes, so the delay before new products appear in search is short. You can also trigger a full reindex manually from the command line at any time, which is common after bulk imports, creating a new store view, or adding a new customer group.
How Attributes Control Search Results
Not every product attribute feeds into the search index. In the Magento admin, each attribute has a “Use in Search” setting. Only attributes you explicitly mark as searchable get sent to Elasticsearch or OpenSearch. Common searchable attributes include product name, SKU, description, and short description, but you can add any custom attribute.
Each searchable attribute also carries a search weight, which tells the engine how much importance to give matches in that field. A match in the product name (typically given a higher weight) ranks above an identical match found only in the long description. You configure these weights in the attribute settings under Stores > Attributes > Product in the admin panel. Tuning these weights is one of the most effective ways to improve search relevance without installing additional extensions.
Beyond search weight at the attribute level, some extensions let you assign a custom weight to individual products or categories, with values ranging from negative (push to the bottom of results) to positive (push to the top). This gives merchandisers direct control over which items surface first for popular queries.
What Happens When a Shopper Searches
When a customer types a query into the search bar, Magento sends that text to the configured search engine. Elasticsearch or OpenSearch tokenizes the query, breaking it into individual terms, and then matches those tokens against the indexed attribute fields. The engine applies analyzers that handle things like stemming (matching “running” to “run”), lowercase normalization, and synonym expansion if you have configured synonyms in the admin.
The engine scores each matching product based on how closely the query matches across all searchable fields, weighted by the attribute weights you set. Products with exact matches in high-weight fields score highest. The scored results come back to Magento, which then applies any additional filtering: stock status, visibility settings, category permissions, and customer group pricing. The final list is what the shopper sees on the search results page.
Layered navigation, the set of filters that appears alongside results (size, color, price range, brand), draws from attributes you have marked as “Use in Layered Navigation.” These facets let shoppers narrow results without typing a new query.
Live Search: The SaaS Alternative
Adobe also offers Live Search, a cloud-hosted service that replaces the native search entirely. When enabled, it swaps out the default search text field and handles queries through Adobe’s servers rather than your local Elasticsearch or OpenSearch instance.
The main difference is AI-powered ranking. Live Search uses machine learning to dynamically re-rank results based on in-session shopper behavior. If a visitor has been browsing a particular category or price range, the algorithm adjusts which products appear first. It also supports dynamic faceting, where the set of available filters changes automatically based on the products in the current result set, with the most commonly used facets pinned to the top.
Live Search is available to Adobe Commerce customers (not Magento Open Source). For stores running the open-source edition, the self-hosted Elasticsearch or OpenSearch setup is the path forward.
Tuning Search for Better Results
If your search results feel off, there are several concrete adjustments worth checking. First, review which attributes are marked as searchable. Having too many searchable attributes dilutes relevance because matches in irrelevant fields (like internal notes or warehouse codes) can push unrelated products into results.
Second, adjust attribute weights so that name and SKU carry more influence than description fields. A common setup gives the product name a weight of 5 or higher while leaving the description at 1.
Third, configure search synonyms in the admin under Marketing > SEO & Search > Search Synonyms. If customers search for “sofa” but your products are listed as “couch,” adding a synonym mapping ensures those products still appear.
Finally, keep your indexer healthy. If you are using “Update by Schedule,” confirm that your cron jobs are running properly. A stalled cron means the changelog piles up and search results go stale. You can check indexer status from the command line with bin/magento indexer:status, which shows whether each indexer is valid, invalid, or processing.

