Semantic search retrieves results by meaning rather than by matching characters. Content and queries are converted into embeddings — numeric vectors positioned so similar meanings sit close together — and retrieval becomes a nearest-neighbour lookup, so relevant results can be returned even when they share no words with the query.
A model trained on large text corpora converts each product, page or paragraph into a vector. The same model converts the query. The engine then finds the stored vectors closest to the query vector, usually with an approximate nearest-neighbour index for speed.
Because closeness encodes meaning, "something warm for a winter wedding" can retrieve a wool overcoat that contains none of those words.
Descriptive queries, paraphrase, problem-shaped queries, cross-language matching, and long conversational phrasing — precisely the queries keyword engines return nothing for.
Exact identifiers, model numbers and precise titles, where character-level precision matters more than meaning. Negation is also weak: "not leather" often retrieves leather, because the embedding sits near the concept regardless of polarity.
It also never returns nothing. Given a nonsense query it confidently supplies the nearest items, which is a distinct failure mode from an empty page and arguably a worse one.