A shopper types “navy waterproof kids jacket” into the store and gets back the two products whose wording happens to match word for word. Another shopper arrives through the category page and wants to narrow by size, warmth, and intended use, but is handed a long filter list built straight out of manufacturer data fields. Both problems trace back to the same root: product discovery is not a search box bolted on after the interface is finished. It is the shared system formed by catalog data, language, ranking, and interaction decisions.
Good discovery architecture does not try to guess perfectly what a shopper wants. It processes the query in a way people can follow, presents products with comparable attributes, makes filter results predictable, and offers a way out of dead ends. This guide designs search and filtering together with the layers around them: product taxonomy, index, facets, ranking, zero results, and measurement. It also ties the technology choice to the catalog and to what shoppers actually need.
1. Classify search queries as user tasks, not keywords
Queries carry different intents: a specific product name or SKU, a category, an attribute, a use case, compatibility, a problem to solve, or a brand. “Running shoes” and “size 42 men's running shoes with pronation support” do not call for the same ranking or the same starting filters. Clean and anonymize your query logs, then group them by high volume, high revenue, zero results, and repeat searches.
Do not define search success solely as an order placed after the query. Filter use, product views, add-to-cart events, and repeat searches are diagnostic signals. A click on the first result is not proof that the right product was found; read task testing and behavioral data together.
Letting separate teams own category browsing and search produces inconsistency. The same “waterproof” attribute has to mean the same thing on the product card, in search synonyms, in the filter, and on the detail page. Whoever owns discovery needs to bring the commercial team, catalog operations, search engineering, design, and analytics to the same decision table.
| Query type | Example | System need | Success signal |
|---|---|---|---|
| Exact product | model AB-123 | SKU and model matching | Fast path to the right detail page |
| Category | camping tent | Broad results and relevant facets | Meaningful narrowing |
| Attribute | waterproof jacket | Attribute normalization | Eligible products set apart |
| Compatibility | case that fits device X | Relationship data | A compatible product chosen |
| Use case | coffee grinder for beginners | Content and product signals | Decision support |
2. Build search quality on product data and taxonomy
A search engine cannot invent catalog information it does not have. Product name, brand, category, color, size, compatibility, and stock all need a defined vocabulary. If “navy”, “dark blue”, and the manufacturer's own code stay separate, matching falls apart. Keep the source value intact and normalize the value the shopper sees.
The category tree should support the way shoppers look for products, not the way the warehouse classifies them. Trees that run too deep make browsing hard, and categories that are too broad make filtering hard. A product can belong in more than one context. The category answers what the product is; the facet answers which attribute narrows the list.
Every attribute needs a definition, a data type, allowed values, a unit, a required-or-optional flag, and a source system. Supplier data passes through validation, and an unknown value is never converted into the wrong category. A catalog dashboard prioritizes missing and contradictory attributes by their effect on discovery.
- Shopper-facing product attributes are defined in the vocabulary.
- Synonymous values are normalized and the source data is preserved.
- The roles of category and filter attribute are separated.
- Unit, language, and market conversions follow explicit rules.
- Missing and contradictory catalog data is validated before publication.
- Every critical attribute has a named business owner and source system.
3. Design query analysis and ranking as explainable layers
Indexing turns text into searchable terms. Capitalization, language-specific characters, brand names, and model codes each need different handling; the rule you apply to a description is not the rule you apply to a SKU. Keep spelling tolerance tied to the mistakes that actually appear in your query logs.
Elasticsearch's official text analysis documentation describes an analyzer as the set of rules that processes text during indexing or search. Built-in analyzers such as standard, simple, whitespace, and keyword split text in different ways, and when no suitable ready-made component exists, you can assemble a custom analyzer from character filters, a tokenizer, and token filters. The official reference also recommends testing analyzers before they reach production.Elastic Documentation — Analyzer reference
Keep text relevance, stock, delivery, quality, and commercial rules apart in ranking. Sponsored products must be labeled and must not override the relevance baseline. A popularity model can bury new products that have no behavioral data yet. Every manual pin needs an owner, a rationale, and an end date.
Check the golden query set for the expected product, unsuitable results, and zero results. In an online experiment, watch product views, add-to-cart events, purchases, and repeat searches together. Record the test period, because season, campaigns, and stock levels all shape the outcome.
| Layer | Purpose | Risk | Control |
|---|---|---|---|
| Text relevance | Match the query to the product | Wrong field weighting | Golden query set |
| Catalog fit | Protect stock and deliverability | Relevant products buried needlessly | Market and stock testing |
| Behavior | Learn which results help | Popularity bias | Protection for new products |
| Commercial rule | Manage campaigns and sponsorship | Loss of relevance and trust | Label, limit, and end date |
4. Make facet logic category-specific, predictable, and reversible
Not every category wants the same filters. Shoes need size, width, and terrain; televisions need screen size, panel type, and connectivity; spare parts need compatibility. Generic color and price filters are not enough. Build filter names from the language customers use to decide, not from internal data columns, and add a short explanation to any technical term that stays unclear.
Selections within the same group usually behave as OR, and selections across groups as AND: red or blue, and small at the same time. Verify that rule in context. Show the result count up front, summarize the applied filters, and let shoppers clear them one at a time or all at once. On mobile, the selection state must survive.
Elasticsearch's official aggregation reference explains that bucket aggregations group documents by field value, range, or other criteria. A terms aggregation can build a bucket dynamically for every unique value, and the documentation notes that across distributed indices the number of terms returned and the shard settings can introduce a margin of error in document counts. Treat filter counts as something to verify against your configuration and catalog rather than as absolute truth.Elasticsearch Reference — Terms aggregation
Facet URLs have to be shareable and reliable under the back button. Making every combination indexable can create crawl and duplicate content problems, so SEO rules belong in a separate decision. The interface, analytics, and server all need to speak the same parameter contract.
- Facets are based on the decisions shoppers make in that category.
- Selection logic within and across groups has been explicitly tested.
- Result counts, applied filters, and clearing controls are visible.
- Options that would return zero results are disabled or explained.
- Mobile filter state survives when the panel closes.
- Rules for URLs, the back button, sharing, and SEO indexing are defined.
5. Hypothetical scenario: fixing the “running shoes” results
This scenario is hypothetical and does not describe results from a real store. At a sports retailer, the query “women's trail running shoes 39” returns the broad category. The size filter counts variants that are out of stock, and “trail” is held as a category on some products and only in the description on others. Shoppers search again.
The inputs are query logs, the repeat-search rate, catalog field completeness, stock and variant data, and task testing. Instead of buying a new AI ranking model first, the team normalizes product type, terrain, gender presentation, and variant size. Variant availability is held separately in the index, and the query parser maps “trail” to the use attribute and 39 to the size facet.
The decision has three layers: incomplete products are corrected, field weights are tested against the golden set, and the size and terrain facets are made visible. Relevant product views, zero results, repeat searches, add-to-cart events, and returns caused by the wrong variant are tracked together. A model upgrade is considered only once the data is stable.
6. Improve search quality continuously with a query set, behavior, and operations
Tie search, zero result, filter, sort, product selection, add-to-cart, and repeat-search events to a query ID. Raw queries can contain sensitive information, so set rules for access, retention, masking, and deletion. Review the results by category and by device.
Baymard's research on product lists and filtering states that filtering, sorting, and list design work together to support product finding, and that the research program examines how users scan, evaluate, filter, and sort lists. Those findings give you a starting hypothesis; they do not remove the need for task testing with your own catalog language and your own customers.Baymard Institute — E-Commerce Product Lists & Filtering UX
The first 30 days can cover a query and catalog audit, an event dictionary, and a golden set of the first 50 to 100 critical queries. The next 30 days pilot normalization, synonyms, zero-result recovery, and category facets. The third month brings ranking experiments, a performance budget, and a weekly search operations routine. The exact scope depends on catalog size and team capacity.
The weekly routine reviews zero results, poor-result reports, campaign terms, and rules that have expired. Changes are versioned and have to pass the golden set and performance testing. A correct result that arrives too late is not findable for the shopper.
| Metric | What it tells you | Risk on its own |
|---|---|---|
| Zero results | A gap in coverage or query understanding | Some queries should legitimately return nothing |
| Repeat searches | The first result set may be insufficient | The shopper may simply be narrowing intent |
| Product selection | The result drew interest | Not proof of the right product or a purchase |
| Add-to-cart | A signal of commercial fit | Stock and price effects are mixed in |
| Latency | What a response costs the system | Perceived speed varies by device |
7. Limits and failure modes: a smarter engine cannot rescue bad data
Semantic or vector search can help with natural language queries, but hard constraints such as stock, price, size, and compatibility still require structured data and business rules. Generative answers can invent a product attribute or an option that does not exist. No new method should replace core search without a golden query set, a safe fallback, and product accuracy checks.
Common mistakes include leaving the search box entirely to the technology team, counting a click as success, giving every category the same filters, modeling product variants incorrectly, putting popularity ahead of relevance, letting manual rules run indefinitely, and turning the zero-result page into a dead end. A zero-result page can offer a spelling suggestion, a category, related content, or a route to support; showing unrelated products can damage trust.
Behavioral data reflects how products were presented in the past, so a product that sits low in the list can look bad simply because it gets few clicks. Experiments have to account for position, season, stock, and price. No technology guarantees a specific business outcome. A durable system manages catalog quality, explainable rules, and user research together.
Conclusion
Do not reduce product finding to a search box, a filter panel, or a new algorithm project. Connect the user task to a product vocabulary, handle free text and exact attributes separately, make facet behavior explicit, and validate quality with a query set against real behavior. Solid data is the foundational discovery feature.
Frequently Asked Questions
Sources
- Elastic Documentation — Analyzer reference
How built-in and custom text analyzers behave
- Elasticsearch Reference — Terms aggregation
Facet-style bucket generation and the limits of distributed document counts
- Baymard Institute — E-Commerce Product Lists & Filtering UX
Original usability research on product lists, filtering, and sorting
Build a discovery system where customers actually find the right product
We review your catalog data, your critical queries, your filter logic, and your measurement plan together, then map out the search architecture worth building first.
Review my product discovery architecture


