What faceted search is
A catalogue of 50,000 products is useless without navigation. Nobody pages through it — they leave.
Faceted search solves that: it narrows the set quickly through several filters at once.
A facet is a single attribute — brand, colour, size, price. Combining them refines the result:
sneakers plus Nike plus blue plus size 42 plus under a given price. Each filtering step refreshes
the available values of the other facets, showing only the options that would return something.
Implementation approaches
| Approach | How it works | Performance |
|---|---|---|
| Database queries (SQL) | WHERE plus COUNT for each combination | Slow on a large catalogue |
| Elasticsearch / Solr | Inverted index plus aggregations | Fast, scales well |
| In-memory faceting | Precomputed indexes in Redis or in process | Very fast, memory hungry |
For catalogues past 100K items, a dedicated search engine is the standard answer.
Faceted search and SEO
Every facet combination can create its own URL. A catalogue with 10 brands × 8 colours × 5 price
bands is already 400 URLs from three facets alone. With a realistic attribute count it runs into the
tens of thousands.
A workable management strategy:
High-value (index):
/catalog/shoes/brand/nike/ — meaningful search demand
Combinations (canonical):
/catalog/shoes?brand=nike&color=blue → canonical to /catalog/shoes/
Technical (noindex / robots.txt):
?sort=price_asc, ?page=2, rare combinations
Tip: use canonical URLs for the facets that matter (brand, category) and noindex for the
combinations. That protects the crawl budget and avoids duplicate content.
Personalizing the facets
Standard faceted search is identical for everyone. A personalized one adapts:
- Preselected values — the shopper always picks size M, so the system preselects it
- Option ordering — brands the shopper has bought before sit at the top of the list
- Hiding irrelevant facets — a children’s wear buyer does not need the men’s / women’s facet