Product Discovery
How MXP handles search, facets, merchandising rules, autocomplete, and browsing
Product discovery covers the full surface that shoppers interact with: text search, browsing by category, autocomplete suggestions, faceted refinement, and the application of merchandising rules.
In Lightweight mode, discovery rules, autocomplete, and linguistic overrides are available in adjusted form. Dynamic categories, visual navigation suggestions, and search and browse facet management are full-platform features; facet behavior is managed in Facet and Tile Controls instead.
Discovery rules
Merchandising rules are tenant-specific business logic applied to search results after the search engine has ranked them. They allow merchants to override algorithmic ranking for specific queries or product sets.
What it solves: Purely algorithmic ranking can't always reflect business intent — a retailer may want to promote new arrivals or deprioritize out-of-stock items regardless of relevance score.
Key concepts:
- Boost — increase the effective score of products matching a condition
- Bury — decrease the effective score of matching products
- Filter — remove products from results entirely
- Pin — force a product to a specific position in the result list
How it works: The Merch Rule Service (MRS) receives the query context from Discovery after QUS annotates it. MRS evaluates all active rules for the tenant against the current query and returns a set of product score modifiers. Discovery applies these modifiers before final ranking.
Rules are authored via the Merch Module UI and stored per-tenant in GCS.
Dynamic categories
Dynamic categories are virtual category pages defined by a saved search query rather than a static product set. This allows categories to stay fresh without manual curation.
What it solves: Static category assignments require manual maintenance. Dynamic categories automatically include products that match a defined rule at query time.
How it works: Category pages call POST /categories on Discovery, which executes the saved query and returns a ranked product list. The /categories/levels endpoint returns the full category tree for navigation.
Autocomplete
Autocomplete provides real-time query suggestions as a user types, reducing the distance from intent to results.
How it works: GET /suggestions?qStr=<prefix> calls the TypeaheadService, which looks up prefix matches in a pre-built suggestion index. Suggestions are ranked by a combination of frequency and relevance to the catalog.
Linguistic override
Linguistic overrides allow tenant administrators to define custom token relationships — synonyms, stop words, and compound-word rules — that affect how QUS interprets queries.
What it solves: Generic NLP models don't know domain-specific vocabulary. For a footwear retailer, "tennies" should expand to "tennis shoes"; for an automotive parts catalog, "OEM" should behave differently than in a generic search.
Search and browse facet management
Facets allow shoppers to refine search results along multiple dimensions. MXP supports separate facet configurations for search queries and browse (category) pages.
| Facet type | Page context | Configured via |
|---|---|---|
| Search facets | Search results | attribute_configuration.json, Merch Module UI |
| Browse facets | Category pages | attribute_configuration.json, Merch Module UI |
Merch Module UI
The Merch Module UI is the Angular-based admin application that operators use to manage all of the above without writing code. Key sections:
| Section | Function |
|---|---|
| Discovery rules | Create, edit, and activate boost/bury/pin/filter rules per tenant |
| Autocomplete | Manage promoted suggestions and blocked terms |
| Linguistic overrides | Define synonyms, stop words, and compound rules |
| Facet management | Configure searchable facets and their ordering |
| User groups | Define segments for group-specific personalization |
| Global configuration | Tenant-wide settings for relevance tuning |
| Recommendations containers | Assign recommendation models to page types |