Semantic Search

Semantic search interprets what a query means rather than matching its literal keywords. It typically works through vector search: content and queries both get represented as dense embeddings, points in a high-dimensional space that capture semantic meaning rather than exact wording, and a k-nearest neighbor algorithm finds the content whose vector sits closest to the query's vector in that space. This lets a system account for searcher intent and contextual meaning, matching conceptually related content even when zero keywords are literally shared, handling synonyms and ambiguous words correctly based on context, and making sense of natural, conversational language rather than requiring a carefully chosen set of keywords.

Keyword search asks "do these words appear." Semantic search asks "does this mean the same thing", and that shift changes which failures are even possible.

Exercise

The scenario: A large online retailer is considering replacing its keyword-based internal search with semantic search. Before committing, the team has compiled six recurring search failures from their logs.

1. Users search by describing what a product does, "something to keep my coffee hot for hours", rather than the product's actual name.
2. Users searching with synonyms, "sneakers" versus "trainers", get inconsistent results under the current keyword system.
3. Users want to search by visual characteristics, "a red patterned scarf" based on an image they have in mind, which the current text-only system can't interpret at all.
4. Search results are identical regardless of the customer's location, despite the site stocking regionally different product ranges in different warehouses.