A specialist retailer had a shop full of the right products and a search box that kept insisting it had none of them. Customers typed the name of a thing that was in stock, in the warehouse, on a shelf — and got “no results”.
How it started
The client assumed they needed “AI search”, because that is what the conferences told them, and asked us to scope a machine-learning relevance engine. We asked to see the search logs first. The logs made a much cheaper case.
A striking share of searches returned zero results — not because the product was missing, but because the customer and the catalogue used different words for the same thing. People searched the way people talk; the catalogue was named the way buyers file things.
What we found
The null-result searches were not random. They clustered, tightly, around a handful of predictable mismatches: brand-name versus generic term, British versus American spelling, the plural the shopper typed against the singular the catalogue stored, the everyday word against the trade word.
The team’s coping mechanism was a human one — every Monday, someone read the failed searches and hand-added synonyms. It worked, barely, and it did not scale, and it made one person the search engine.
What we built
No neural network. A boring, legible relevance layer that earned its keep.
- Analyzers that handle the mechanical mismatches — spelling variants, plurals, punctuation — so “trainers”, “trainer” and “traner” stop being three different questions.
- A synonym set derived directly from the failed-search logs, generated and reviewed rather than typed in by hand under time pressure each week.
- A ranking pass that stops burying the obviously-relevant result under fourteen accessories, tuned against real queries the team recognised.
- A dashboard of null-result searches, so the catalogue team can see the remaining gaps as product decisions rather than as a chore.
Everything is inspectable. When the search does something surprising, someone can open it up and see why, which is more than most “AI search” can offer.
Results
Null-result searches roughly halved, and the Monday synonym ritual quietly ended, because the failures now feed a system instead of a person’s calendar. Sessions that use search are a different animal commercially from ones that browse; the client watched their own numbers move and did not need us to tell them it worked.
The lesson we keep relearning on other people’s products, as on ours: reach for the simplest thing that could possibly work before the impressive thing that might. The search box did not need intelligence. It needed to speak the customer’s language.