ModKor Advanced Search & Autocomplete for Magento 2 & Hyva
calcActive())">
ModKor Advanced Search & Autocomplete for Magento 2 & Hyva
Everything your store search should do — on the engine Magento already runs, owned outright, no monthly fee. ModKor Advanced Search adds a fast, Hyva-native autocomplete (products with image/price/SKU, plus categories, CMS pages, recent & popular searches with live result counts), a smarter results page (did-you-mean, 404-to-search, friendly URLs, zero-result CMS block), pick-and-bury merchandising rules, a search analytics dashboard, and the one thing the competition can't touch — AI semantic "search by meaning" powered by OpenSearch k-NN. It rides Magento's native OpenSearch connection (no engine to rip out, upgrade-safe), ships a 23-language abusive-word filter and per-IP rate limiting, and is configured entirely from one mint React dashboard.
Replace two Amasty modules and their subscription with one owned extension — and get AI search they don't offer.
ModKor Advanced Search is an OpenSearch-native search & autocomplete suite for Magento 2 and Hyva. It does not rip out and replace Magento's search engine the way older extensions do — it rides the native OpenSearch connection your store already uses, so it's upgrade-safe and there's nothing new to configure at the engine level. On top of that it layers the rich storefront experience, merchandising, analytics and AI that Magento core lacks.
Hyva-native instant autocomplete
Products with thumbnail, name, SKU and price — as they type
Categories and CMS pages too, each with a live match count
Recent searches (private, in the shopper's browser) and popular searches
Ships its own stylesheet — looks identical on any Hyva theme, not just ours; attaches to any theme's search box automatically
Typo tolerance, configurable min-characters, debounce and result limits
AI semantic search — nobody else has this affordably
Search by meaning, not just keywords: "cozy winter gift" finds the right products even when the words don't match
Powered by vector embeddings + OpenSearch k-NN on the server you already run — zero per-search fees
Hybrid ranking: dial exactly how much meaning blends with classic keyword relevance
Self-hosted CLIP by default, with a hosted-API fallback for shared hosting
Control exactly where it searches
Search Attributes grid — add or remove any product attribute (name, SKU, description…) and set its weight 1–10
Per-store, per-section toggles for products, categories, CMS, recent and popular
Merchandising & analytics
Pin your best sellers to the top for a term, or bury what shouldn't show — exact or contains match, per store, with date windows
Search analytics: your top searches and, crucially, the zero-result ones — what shoppers want that you don't rank for
Zero-result rescue — show a CMS block (promos, popular categories) instead of an empty page
Protection built in
23-language abusive-word filter (~2,300 terms) — profane searches return nothing and never pollute Popular or Recent searches; whole-word matching so "class"/"password" are never wrongly blocked; leetspeak-aware
Per-IP rate limiting and query length/content validation to stop scraping and bot abuse
One mint dashboard
Analytics, merchandising rules and every setting — including the engine connection — live in a single React admin, no Stores → Config maze. Bilingual EN + FR.
Compatibility
Magento Open Source / Adobe Commerce 2.4.x (OpenSearch) · PHP 8.1–8.4 · Hyva storefront (the search API works on any theme) · GraphQL-ready · AI semantic search needs the opensearch-knn plugin (bundled in OpenSearch 2.x+) and an embedding service · ModKor_Core (ships with the suite).
Write Your Own Review
Version 1.1.0 — Search-term management & cleanup
Delete search terms — tick any row in Top or Zero-Result Searches and remove it, one at a time or in bulk.
Bulk cleanup panel — one click to clear zero-result terms, stale terms (not searched in N days), rare one-off noise (searched N times or fewer), or a store's entire history (typed confirmation required).
Automatic retention — set how many days of search history to keep and a nightly job prunes the rest, so the search log never grows without bound. Off by default.
Separate delete permission — a dedicated ACL role controls who may delete search terms; read-only admins keep the analytics but never see the delete controls.
Threshold cleanups fail closed: a missing or zero threshold deletes nothing.
Hyva-native autocomplete — products (image/price/SKU), categories, CMS pages with live counts, recent & popular searches, typo tolerance; self-contained CSS that works on any theme.
AI semantic search — search by meaning via vector embeddings + OpenSearch k-NN, with hybrid keyword+semantic ranking (self-hosted CLIP or hosted API).
Configurable search attributes — choose which attributes are searched and their weights.
Merchandising rules — pin/bury products per query, per store, with date windows.
Search analytics — top and zero-result searches from Magento's own log.
Unified React admin — analytics, merchandising and every setting (incl. engine connection) in one dashboard. Bilingual EN + FR.
Security & Adobe EQP audit pass: allow-listed config writes, no injection/XSS/path-traversal, all output escaped, framework serializer, no remote assets in shipped code.
1. What it does
ModKor Advanced Search & Autocomplete gives Magento 2 + Hyva a fast, modern search experience on top of the OpenSearch engine your store already runs: rich instant autocomplete, AI "search by meaning", merchandising rules, a search-analytics dashboard, a smarter results page, and a 23-language abusive-word filter — all from one dashboard, with no engine replacement and no subscription.
The dashboard at ModKor → Search (also under Stores → ModKor): Analytics, Merchandising and Configuration.
Highlights
Hyva-native autocomplete — products, categories, CMS pages, recent & popular searches, live counts.
AI semantic search — meaning-based results via OpenSearch k-NN; hybrid keyword + semantic ranking.
Merchandising — pin or bury products per search term, per store, with date windows.
Search analytics — top searches and zero-result searches, read from Magento's own log.
Magento Open Source / Adobe Commerce 2.4.x with the OpenSearch engine
PHP 8.1 – 8.4 · Hyva storefront (search API works on any theme)
ModKor_Core (ships with the suite)
Optional (AI): the opensearch-knn plugin + an embedding service for semantic search
3. Installation
composer require modkor/module-search
bin/magento module:enable ModKor_Core ModKor_Search
bin/magento setup:upgrade
bin/magento setup:di:compile # production
bin/magento setup:static-content:deploy # production
bin/magento cache:flush
Make sure your catalog is indexed into OpenSearch (bin/magento indexer:reindex catalogsearch_fulltext) — the module reads that index, it doesn't build its own.
4. Quick start (2 minutes)
Open ModKor → Search → Configuration. The engine connection is already filled in (it mirrors Catalog Search) — leave it.
Under General, confirm Enable ModKor Search is on; set minimum characters (3) and debounce (300ms).
Under Relevance, add the attributes to search (Name weight 5, SKU weight 4 by default; add Description if you like).
Save Settings, then type in your storefront search box — the rich dropdown appears with products, categories and pages.
Every setting in one place — no Stores → Config hunting.
5. The dashboard, tab by tab
Analytics
Pick a store view to see top searches and, most usefully, zero-result searches — the terms shoppers want that return nothing. Each is a candidate for a merchandising rule or a new product. Read straight from Magento's own search log; nothing extra to install.
Top searches and zero-result searches, per store view.
Managing & cleaning search terms
Search terms are stored in Magento's own search_query table — the same data behind Marketing › SEO & Search › Search Terms. The module doesn't keep a separate copy, so anything you delete here is removed everywhere. Deletions cannot be undone.
Delete one or several: every row in Top Searches and Zero-Result Searches has a checkbox. Tick the ones you want (or the box in the header to select the whole table) and press Delete selected. The totals refresh immediately.
Bulk cleanup: the Maintenance panel at the bottom of the Analytics tab clears out history in one click, always scoped to the store view you have selected:
Delete zero-result — every term that never matched anything.
Delete stale — terms not searched in the last N days.
Delete rare — terms searched N times or fewer; good for one-off noise and bot spam.
Delete all — wipes the store view's entire history. You must type DELETE to enable the button, and it is checked again on the server.
If a threshold box is left empty or set to zero, nothing is deleted — the cleanup fails closed rather than guessing.
One-click cleanup, scoped to the selected store view.
Automatic retention: under Configuration › Search Analytics & Data Retention, set how many days of history to keep. A nightly job then prunes anything older, so the log never grows without bound. The default is 0, which keeps everything forever — nothing is deleted unless you opt in.
Permissions: deleting is a separate admin role (Delete Search Terms). Admins without it still see all the analytics, but none of the delete controls — and the server enforces it regardless.
Merchandising
Create rules that pin chosen SKUs to the top of a search term, or bury ones that shouldn't show. Exact or "contains" match, per store, with optional active dates. Great for promotions and for fixing the zero-result terms analytics surfaces.
Pin and bury products per query — with date windows.
Configuration → Search Engine
The OpenSearch connection (host, port, index prefix, auth, timeout) — the same values as Stores → Configuration → Catalog → Catalog Search, editable here for convenience.
Configuration → Relevance
The Search Attributes grid decides which product attributes are searched and how strongly each counts (weight 1–10). Add Name, SKU, Description or any attribute flagged "Use in Search".
Configuration → Request Protection
Per-IP rate limiting, max query length, and the abusive-language filter: enable it, choose which of the 23 bundled languages to load (or add your own list), and turn on leetspeak detection.
Configuration → AI Semantic Search
Turn on search by meaning: choose the embedding provider (self-hosted CLIP or hosted API), set the blend weight, and run bin/magento modkor:search:semantic-reindex. If k-NN or the embedder isn't available, semantic simply stays off and keyword search keeps working.
6. The storefront experience
Type — the dropdown shows matching products (image, price, SKU), plus categories and pages, each with a count, and a "See all N results" link.
Before typing — recent and popular searches appear on focus.
Results page — did-you-mean suggestions, and a CMS block instead of an empty page when nothing matches.
7. Troubleshooting
Symptom
Fix
Dropdown doesn't appear
Confirm the module is enabled and the catalog is indexed into OpenSearch. On an unusual theme, set the Search Input Selector under General (default covers stock Magento/Hyva).
No categories/pages in the popup
Enable them under Autocomplete Popup, and make sure matching categories/pages are active and store-assigned.
Semantic search off
It requires the opensearch-knn plugin and a reachable embedding service; without them the module runs on keyword search. Check _cat/plugins for opensearch-knn.
A legit term is blocked
Trim the Blocked-Word Languages to the languages you serve, or edit the list. Matching is whole-word, so this is rare.
8. FAQ
Does it replace my search engine? No — it rides Magento's native OpenSearch connection, so it's upgrade-safe. Image search is our separate ModKor Visual Search module.
Do I need a subscription? No. One-time license, you own it — unlike the Amasty stack this replaces.
Any theme? The storefront widget ships its own CSS and attaches to any theme's search box; Hyva recommended.
Multi-store? Yes — settings, merchandising and analytics are per store view.
Where are search terms stored, and can I clear them? In Magento's own search_query table. You can delete terms individually or in bulk from the Analytics tab, and set a retention window so old terms are pruned automatically each night.
Search by image
…or paste a screenshot (Ctrl+V), or drag & drop an image here
Finding similar products…
No close matches found — try a clearer photo of the product.