Services

Adobe Commerce development
Storefront design
Upgrades, migration & support
Performance & SEO
AI & agentic commerce
Custom application development
Book a free audit call

OpenSearch for Magento: Setup, Tuning and Fixing Bad Search Results

OpenSearch tuning: Performance & hosting guide from Mistri
Loading...
OpenSearch for Magento: Setup, Tuning and Fixing Bad Search Results

Magento Open Source and Adobe Commerce use OpenSearch as the engine behind catalog search and layered navigation. You point the store at an OpenSearch cluster in the admin, keep the catalogsearch_fulltext index current with cron, and then shape relevance with attribute settings, search weights, synonyms and stopwords. Most "bad search" complaints come from stale indexes, attributes that are not searchable, or missing synonyms, not from OpenSearch itself.

This guide covers how the pieces fit together, a safe setup, the tuning levers you control without custom code, and a troubleshooting table that maps each symptom to its likely cause and fix.

How Magento uses OpenSearch

Every 2.4.x installation needs a search engine. Adobe added OpenSearch support in 2.4.4, describing it as a compatible fork of Elasticsearch. For 2.4.9, Adobe's system requirements list OpenSearch 3 and no Elasticsearch row, so new builds and upgrades should plan on OpenSearch.

Magento does not query your database for storefront search. It copies searchable product data into OpenSearch through the Catalog Search indexer (catalogsearch_fulltext). Search results pages and layered navigation filters then read from that index. Two consequences follow:

  • If the index is stale, search is wrong, even when the product looks correct in the admin.
  • Indexing depends on cron. If cron stops, search quietly drifts out of date. Our guide to Magento cron and indexers explains how to monitor this.

Setting up OpenSearch safely

Where the settings live

In the admin, go to Stores > Settings > Configuration > Catalog > Catalog > Catalog Search. There you set the search engine, the OpenSearch server hostname, port (default 9200), index prefix (default magento2) and server timeout (default 15 seconds), then use the connection test. The same values can be set from the command line, which is better for repeatable deployments:

bin/magento config:set catalog/search/engine opensearch
bin/magento indexer:reindex catalogsearch_fulltext
bin/magento cache:clean

Architecture choices

  • Separate host or managed service. Adobe documents running the search engine on its own host, reached through a reverse proxy over TLS with HTTP Basic authentication. Do not expose port 9200 to the internet.
  • Unique index prefix per environment. If staging and production share a cluster, give each its own prefix so a staging reindex never overwrites live data.
  • Match the supported version. Use the OpenSearch major version listed for your exact Magento release and patch. Upgrading Magento and OpenSearch together is common, so plan both in the same project.
  • Memory and disk. Size the JVM heap and disk using OpenSearch's own guidance, and monitor cluster health. A yellow or red cluster shows up as slow or failed searches.

The relevance levers you already have

Before buying a new search product, use the controls built into Magento. Each one changes what OpenSearch receives or how queries are built.

Attribute settings

At Stores > Attributes > Product, open an attribute and check Storefront Properties:

  • Use in Search decides whether the attribute is indexed for search at all. Brand, model number and material are often missed.
  • Search Weight (1 to 10) boosts matches in that attribute. Give the product name and SKU more weight than long descriptions so a short title match outranks a passing mention in body copy.
  • Visible in Advanced Search only affects the advanced search form.

Also check each product's Visibility. Only products set to "Search" or "Catalog, Search" appear in results. Child products of configurables are usually "Not Visible Individually" and are found through their parent.

Synonyms, search terms and stopwords

  • Search synonyms at Marketing > SEO & Search > Search Synonyms map words shoppers use to words in your catalog, such as "sofa" and "couch", or a brand abbreviation and its full name. Groups can be scoped per store view, which matters for multi-language stores.
  • Search terms at Marketing > SEO & Search > Search Terms let you set a redirect URL for a query, so "returns" goes to your returns page instead of a product grid.
  • Stopwords are kept in CSV files per locale in the Elasticsearch module's etc/stopwords directory. Adobe's documentation explains how to override them in a custom module rather than editing vendor files.

Query settings

In the same Catalog Search section, Minimal Query Length (default 3) and Minimum Terms to Match change how strict multi-word queries are. A stricter match setting reduces noisy results but can increase "no results" pages for long queries, so change it in small steps and compare.

Search-quality troubleshooting table

Use this table when merchandisers or customers report bad results. Work from the top: the first rows are the most common and cheapest to fix.

SymptomLikely causeFix
New or edited products missing from resultsCatalog Search index stale; cron not running or indexer backlogRun bin/magento indexer:status, check cron, reindex catalogsearch_fulltext
Search by SKU or model number finds nothingSKU-like attribute not set to Use in Search, or low weightEnable Use in Search, raise Search Weight, reindex
Product exists but never appears in searchVisibility excludes Search, product out of stock with "Display Out of Stock Products" off, or not assigned to the websiteCorrect Visibility, stock display setting and website assignment
Long-description matches outrank exact title matchesDescription weight equal to or higher than nameRaise name and SKU weight, lower description weight
Shoppers' words return zero results ("couch", "tee")Vocabulary mismatchAdd synonym groups from your zero-result search terms
Too many loosely related results for multi-word queriesMatching too lenientAdjust Minimum Terms to Match; review which attributes are searchable
Search works in one store view but not anotherSynonyms, stopwords or attribute labels not set for that locale or viewScope synonyms per store view; check locale stopwords
Search pages slow or timing outCluster under-sized, unhealthy, or many heavy aggregations from layered navigationCheck cluster health, heap and disk; limit filterable attributes to the ones shoppers use
Search fails completely after an upgradeOpenSearch version not supported by the new release, or engine setting resetMatch the version in Adobe's requirements; confirm catalog/search/engine; reindex
Staging changes appear on the live storeEnvironments share a cluster and index prefixGive each environment a unique index prefix

Measure before and after you tune

Tuning without data turns into guesswork. Start with the Search Terms report under Reports, which shows what people type and how many results each query returned. Sort by zero-result queries and by your highest-volume queries, then:

  1. Pick the 20 to 50 queries that matter most for revenue.
  2. Record the top results for each before you change anything.
  3. Make one change at a time (weights, synonyms or match settings), reindex, and compare.
  4. Track search exit rate and search-to-cart rate in your analytics, not just zero-result counts.

Search speed also matters. OpenSearch is only one part of the response time; theme, layout, block rendering and layered navigation code all add to it, and search pages vary too much by query to benefit much from caching. If search pages are slow, treat it as part of wider Magento performance optimization work rather than a search-only fix.

When native OpenSearch is not enough

Core Magento search is keyword-based. It handles exact and partial term matches well once tuned, but it does not understand intent ("warm jacket for hiking under 200") or learn from clicks on its own. Signs you have outgrown it:

  • Large catalogs where shoppers describe needs rather than product names.
  • Merchandisers asking for rules, boosts and personalization per query.
  • Many languages where maintaining synonyms by hand does not scale.

Options include Adobe's own Live Search for Adobe Commerce (availability depends on edition and licence), third-party search services, and semantic or vector search built on OpenSearch features. Our article on AI site search for ecommerce compares these approaches.

FAQ

Can Magento 2.4 run without OpenSearch or Elasticsearch?

No. Since 2.4.0 a search engine is required, and MySQL search is no longer an option. For 2.4.9, Adobe lists OpenSearch 3.

Do I need to reindex after changing synonyms?

Synonyms are applied at query time in Magento's search, so a cache clean is usually enough. Changes to attribute searchability or weights do need a Catalog Search reindex.

Should OpenSearch run on the same server as Magento?

It can on small stores, but a separate host or managed service is easier to size, secure and upgrade. Keep it private and behind authentication either way.

If your store's search is slow or returns poor results, Mistri can review the index, configuration and relevance settings, then plan the fix as part of performance work or, where keyword search has hit its limits, an AI search project.

Sources

Adobe Experience League: Search engine prerequisites; Adobe Experience League: Catalog configuration reference; Adobe Experience League: System requirements; Adobe Experience League: Search stopwords.