Magento AI Semantic Search: help shoppers find products in their own words
Customers describe what they need, not always what your catalogue calls it. See 12 example searches and how semantic search works alongside Magento's existing results.
Help shoppers find products by describing what they need. Combine semantic and keyword search, show quick product suggestions and review rescued or unanswered queries. Keep classic Magento search available when the AI path is unavailable.
One-off payment, with 12 months of updates.
No subscription or automatic renewal. Keep using the versions included in your update period. Update and licence details
Composer package softaware/module-ai-semantic-search
A customer asks for something to carry a laptop, while your catalogue calls the product a commuter backpack. AI Semantic Search adds meaning-based matching alongside Magento keyword search, helping connect that request to the product information you actually maintain.
Start with Fallback mode: classic results remain the normal path, with semantic help when results are sparse or the request reads like natural language. Hybrid combines the two rankings more broadly. Off and Semantic-only are available for comparison and experiments.
Magento continues to handle product filters, sorting and pagination. Test exact SKUs and restrictive filters as well as descriptive requests. A visually similar or broadly related item is not a substitute for the correct technical part.
The indexed representation includes names, categories, descriptions, selected attributes and relevant variant information per store view. Choose activity, material, capacity and other useful facts. Changed content is re-embedded; optional AI keywords can supplement it.
Try requests such as something to carry my laptop, clothes for running in cold weather, what should I wear to yoga class and equipment for working out at home. Our blog includes all 12 suggested test queries. Each match needs catalogue evidence: a bottle should not claim to keep drinks cold without documented insulation.
Optional quick suggestions show relevant product candidates while the shopper types. Status & Index reports coverage and estimated indexing cost, and Compare Search Results places classic, semantic and final results side by side.
Search Insights shows rescued queries, remaining gaps, result counts and clicks, with CSV exports. For recurring zero-result requests, AI can propose a grounded synonym or category redirect. Staff approve before it writes Magento's native search data.
Magento Open Source or Adobe Commerce 2.4.7–2.4.9 with OpenSearch, PHP 8.2–8.5, SoftAware Core and AI Core. Use your own OpenAI or Voyage AI embedding key. OpenSearch k-NN is used where configured, with the documented MySQL fallback for smaller catalogues; Elasticsearch 8 is not plugged into this integration.
Repeated queries use the cache and new queries use provider embeddings. Optional keyword generation and suggestions are separate completion requests. Timeouts, a circuit breaker, rate limits and budgets fall back to classic results when needed.
Query processing involves the configured provider. Recognised email/phone queries are excluded, and insights do not retain customer, session or IP identifiers. Catalogue quality and similarity thresholds still determine relevance.
Read the 12 natural-language search examples and test them against representative products before enabling a broad mode.
Try the admin demo. Storefront examples are available on the Luma demo and Hyvä demo. Demonstration or offline-test data shows the workflow; evaluate AI matching and forecasts with your own representative catalogue.
Not in the recommended Fallback mode. It adds help when classic search is weak or a query is descriptive. Hybrid combines both rankings; Semantic-only is an optional experimental mode.
Yes. The integration retains the Magento search filters, sort and pagination. Semantic candidates are selected before narrow filtering, so restrictive filters can reduce their number.
Timeouts, budgets and failure handling return shoppers to classic Magento results. That recovery does not guarantee a particular result quality or zero additional latency.
Those are useful test intents when the catalogue contains supporting descriptions, dimensions, activity and material data. They are not guaranteed rankings. The product must genuinely support the requirement.
The supported Magento OpenSearch engine plus an OpenAI or Voyage AI embedding key. Elasticsearch 8 is not integrated. AI Core uses OpenSearch k-NN where available and a documented MySQL fallback for smaller setups.
Compatibility
| Magento | 2.4.7 – 2.4.9 |
|---|---|
| PHP | 8.2 – 8.5 |
| Latest version | 1.0.3 |
| composer.json requires | php ~8.2.0||~8.3.0||~8.4.0||~8.5.0 ext-json * magento/framework ~103.0.7 softaware/module-core ^1.0 softaware/module-ai-core ^1.2 magento/module-backend * magento/module-catalog * magento/module-catalog-inventory * magento/module-catalog-search * magento/module-config * magento/module-configurable-product * magento/module-elasticsearch * magento/module-open-search * magento/module-search * magento/module-store * magento/module-url-rewrite * |
Installation
After you buy, create a Composer key in your account. Then, in the root of your Magento project:
01Add the repository and your key (once per project)
composer config repositories.softaware composer https://repo.softawarecommerce.com composer config --auth http-basic.repo.softawarecommerce.com PUBLIC_KEY PRIVATE_KEY
02Install the module
composer require softaware/module-ai-semantic-search
03Enable it
bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy bin/magento cache:flush
The last three are only needed in production mode.
Prefer a zip? Every version you are entitled to can be downloaded from My modules. More about Composer access
User guide
For version 1.0.3. The same guide comes with the module, in docs/user-guide.md.
Softaware > AI Semantic Search > Settings
bin/magento softaware:semantic-search:reindex --yes).Coverage on the Status page reaches 100 % when every searchable product of a store view has a vector.
On Status & Index, Compare Search Results shows three lists for any query: classic search, semantic hits (with similarity) and what shoppers get. Good queries to try on Luma sample data:
bag for a laptop and gym clothescomfortable shoes for running in summerrucksack (the catalogue says "backpack")something warm for winter hikingwaterproof jacket for rainIf unrelated products appear, raise Minimum Similarity (e.g. 0.35). If too few semantic products appear, lower it or Relative Similarity.
| Mode | When |
|---|---|
| Fallback | Recommended. Keyword searches unchanged, help where classic search fails. AI cost only for those queries. |
| Hybrid | Catalogues with descriptive products (fashion, gifts, furniture) where meaning matters for most queries. |
| Semantic only | Experiments; SKU and exact-name searches can get worse. |
Semantic Weight (Hybrid and natural-language queries in Fallback): 50 % = classic and semantic rankings count equally; higher favours meaning over exact words.
With Show Semantic Product Suggestions = Yes, a "Products you might like" box appears under the search box while shoppers type (after 3 characters and a short pause). Magento's own search term suggestions stay as they are.
Softaware > AI Semantic Search > Search Insights (last 7/30/90/365 days, per store view):
Each list has Export CSV. No customer, session or IP data is stored. Queries containing an e-mail address or a phone number are not recorded and never sent to the AI (shoppers get classic results for them).
Softaware > AI Semantic Search > Suggestions → Generate Suggestions. For zero-result queries searched at least twice, the AI proposes a synonym group (e.g. "rucksack, backpack") or a redirect to a category, using the products semantic search found as grounding. Review each one: Approve writes it to Marketing > SEO & Search > Search Synonyms (store view) or Search Terms (redirect); Discard hides it.
| Symptom | Check |
|---|---|
| Coverage stays at 0 % | AiCore cron running? API key set? bin/magento softaware:ai:vectors:status |
| Compare shows "AI status: not_configured" | No API key for the embedding provider |
| "AI status: circuit_open" | An AI error happened in the last minute; see var/log/system.log |
| Results did not change | Search Mode Off for the store view, or Fallback with enough classic results (by design) |
Changelog
semantic_search: one text vector per product and store view (name, categories, chosen attributes incl. configurable variants' values, short description, description with HTML removed and a length cap, optional AI search keywords). Re-embedded only when the text changes (AiCore hash).embedQuery() / getCachedQuery()), latency budget (default 1.5 s, no retry, millisecond timeout) with classic fallback, circuit breaker after AI errors, rate limits per shop and per visitor (AiCore RateLimiterInterface, also for the insights beacon), AiCore budget check incl. module limits, no-cache headers for pages where the AI was skipped for a passing reason.softaware:semantic-search:status|reindex|query|suggestions.VectorIndexStatusInterface, reindex via ProductVectorIndexInterface, AI cost panel on Status & Index, offline responders for keyword and synonym suggestions (AiCore offline test doubles replace the former developer embeddings; old setting migrated).From the blog
Customers describe what they need, not always what your catalogue calls it. See 12 example searches and how semantic search works alongside Magento's existing results.
We use necessary cookies to run this site and, with your permission, Google Analytics to understand how it is used. You can accept analytics, reject it or choose in the settings. Cookie policy
Choose which cookies you allow. Necessary cookies are always on because the shop cannot work without them. You can change your choice at any time with the "Cookie settings" link.
Needed for the basket, checkout, login and security. They do not track you.
Google Analytics: how many people visit, which pages they read and how they found the site. It sets the _ga cookies and sends usage data to Google.