The story
Keyword search couldn't survive the catalog's own complexity
The client is one of the world's fastest-growing bath and lighting brands, operating across 55+ countries and running one of the industry's largest chains of branded showrooms. Their site search — the standard keyword-matching kind — was quietly costing them sales at scale: only 10–15% of people who searched actually converted.
The failure mode ran in both directions. Precise queries like "hand faucets for kitchen sink, 1 meter long, with long flexible tube & wall hook" returned unrelated products because no keyword index could parse that much intent. Broad queries like "kitchen faucet" did the opposite — dumping too many undifferentiated options on the shopper and leaving them to do the filtering themselves.
We didn't reach for a bolt-on search plugin. The fix required understanding intent, not just matching text — so we assembled a team of nopCommerce developers (their site's platform, hosted on Oracle Cloud) alongside AI/ML consultants, and spent the first week mapping the catalog, the content, and how people actually searched before writing any model code.
The trade-off we made explicit up front: a rules-based synonym system would have shipped faster but hit a ceiling fast on a catalog this varied. We trained a model on the client's own historical search logs and product data instead — slower to start, but it's what let the system keep improving after launch instead of degrading as the catalog grew.
- Client
- Bath & lighting brand, 55+ countries, luxury to value segments
- Core Stack
- nopCommerce, Oracle Cloud, MS SQL Server, Python NLTK
- Models
- TF-IDF, Word2Vec, Bag-of-Words → transformer ranking model
- Deployment time
- 3 months from kickoff to live search engine
- Ongoing
- Model retrains continuously on live user feedback