Semantic search
Search that finds results by meaning, not by matching the exact words you typed.
Classic keyword search looks for the words you typed. Search a help center for "can't log in" and it may miss the article called "Reset your password". Semantic search looks for meaning instead: it recognizes that both are about the same problem and returns the article even though they share no words.
It works with embeddings. Every document, usually split into chunks of a few paragraphs, is turned by a model into a long list of numbers that captures what it is about, and stored, often in a vector database. When a query arrives it is turned into numbers the same way, and the search returns the chunks whose numbers are closest, typically measured with cosine similarity. Similar meaning, nearby numbers.
It is the retrieval step behind most RAG systems: before an LLM answers a question about a company's documents, semantic search finds the few passages worth reading. It also powers "similar products", search across languages and finding photos by description. Its weak spot is exact detail: product codes, rare names, error numbers. That is why many systems run hybrid search, mixing keyword and semantic results, and then reorder the top hits with a second model called a reranker.
Keep in mind
- It matches meaning, so synonyms and paraphrases still find each other.
- Documents and queries become embeddings; the nearest ones win.
- It is the usual retrieval step inside RAG.
- It struggles with exact codes and names, hence hybrid search with keywords.
Go deeper
- Semantic search on Wikipedia
- What is semantic search, and how does it work? (Google Cloud)
- Semantic search (Sentence Transformers docs)