Skip to content
UX Atlas
Case studyCraft conventionIntermediate

Fixing a Search That Returned Nothing

A large share of searches returned nothing, and the fix was vocabulary rather than the search engine.

Definition

A decision case about search quality: how the zero-result log turned out to be a vocabulary mismatch rather than a retrieval problem.

Craft convention. True because the industry converged on it. Breaking it costs familiarity, not correctness.

A composite scenario assembled from situations that recur across teams. It is written to teach reasoning rather than to report on a named company, and outcomes are stated directionally rather than as invented measurements.

Problem

Around a fifth of searches on a product documentation site returned no results, and the team's proposed fix was to replace the search engine.

Context

A technical documentation site with several hundred pages and an exact-match search. Content was written by the engineering teams that built each feature.

Constraints

  • No budget for a hosted search product in the current year.
  • Content was owned by many teams and could not be centrally rewritten.
  • The site was statically generated, so any solution had to work with a prebuilt index.

Decision

Keep the existing search and add three things: an alias field on every page, fuzzy matching with a bounded edit distance, and a no-results state that offers the closest matches and the most popular pages.

Rationale

The zero-result log showed the failures were not retrieval failures. Users searched for the words they used, and the documentation used the words the engineers used. An alias list mapping the two, maintained by whoever writes the page, solved most of it. Fuzzy matching handled typos. The improved empty state handled the remainder without pretending the search had succeeded.

Evidence used

  • The zero-result query log, grouped by intent, which showed clusters of synonyms for the same concept.
  • Comparing the top zero-result queries against support ticket wording, which matched closely.
  • A count of how many failures were typos versus vocabulary, which came out heavily in favour of vocabulary.

Trade-offs accepted

  • Aliases require maintenance, and pages whose authors do not add them stay hard to find.
  • Fuzzy matching introduces some irrelevant results, which required a relevance threshold.
  • The team did not get the better search engine they wanted, and the underlying engine remained basic.

Outcome

Zero-result searches fell substantially, and the remaining ones became a useful backlog of genuinely missing content. The alias field also improved external search visibility, which was not the goal.

Alternatives considered

Replace the search engine

Why not: A better retrieval engine still cannot match words that do not appear in the content. It would have been the expensive version of the same failure.

Rewrite the documentation in user vocabulary

Why not: Correct in principle, impossible in practice across many owning teams. Aliases achieved most of it incrementally.

Add a chatbot over the documentation

Why not: It obscures rather than fixes the vocabulary gap, and it introduces the risk of confidently wrong answers in technical documentation.

Each link says what the connection is, so you can tell a principle from an alternative from a thing people mix this up with.

Concepts behind this decision

What the reasoning in this case rests on.