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.
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 |