All posts

What is semantic search, and why does keyword search fail?

Semantic search matches meaning instead of spelling. Text is turned into numbers so that passages meaning similar things sit near each other, which is why a search for “knee pain from running” can find a caption that says “patellofemoral syndrome”. Keyword search compares letters, so it finds neither synonyms nor paraphrase.

5 min readThe Nemivo teamSearchAIExplainer

Every product with a search box now claims it understands you. Most are still matching text and hoping. The ones that are not are doing something genuinely different, and the difference is worth understanding, partly so you can tell which kind you are using.

No maths in this one. Just what is going on.

How does keyword search work?

Classic search takes what you typed, breaks it into words, and looks for documents containing those words. Good implementations are cleverer than that: they trim words to their stems so “running” finds “run”, they weight rare words above common ones, they tolerate a typo.

But the core move never changes. It compares text to text. Which means it fails in exactly the ways you would expect:

  • Synonyms. You search “flat”, the post said “apartment”. Nothing.
  • Paraphrase. You search “how much water in the dough”, the caption said “72% hydration”. Nothing, and the two are the same question.
  • Another language. You search in English, the caption is in Turkish. Nothing.
  • The idea was never named. The post is a two-minute clip about deloading and never once says “recovery”, which is the only word you have.

None of this is a bug. The tool did what it was built to do. You asked a question about meaning and it only knows about spelling.

The alternative starts by turning text into numbers.

A model reads a piece of text and produces a long list of numbers describing it, typically a few hundred to a couple of thousand of them. That list is called an embedding. The useful property, and the only one you need to hold onto, is this:

Texts that mean similar things get similar lists of numbers.

Not texts that look similar. Texts that mean similar things. “Apartment renovation on a budget” and “cheap flat makeover” share almost no words and land right next to each other. “River bank” and “investment bank” share a word and land far apart.

Once your saved posts are all embeddings, searching stops being a text comparison. Your query is turned into numbers the same way, and the system looks for the saves whose numbers sit closest to it. That is the whole trick. No keyword ever has to match.

This is why you can type “that thing about knee pain from running” and get back a post whose caption reads “patellofemoral syndrome: the 3 fixes that worked for me”. Nothing in your sentence appears in that caption. It did not need to.

Why does good search still use keywords?

Here is where a lot of “AI search” ends up worse than what it replaced: it throws keyword search away.

Semantic search is bad at precisely the things keyword search is best at. Names, handles, product codes, error messages, exact quotes. If you search for @breadfolk you do not want posts that are conceptually adjacent to @breadfolk. You want that account. Embeddings blur exactly the detail you are being specific about.

So the sensible design runs both and merges the results. Each method ranks everything in its own way, and the two rankings are combined so that anything both methods liked rises to the top, while something only one of them found can still make it in. A save that is a meaning match and a word match wins; a save only one approach spotted is not thrown away.

That is all hybrid search means. Two opinions, merged. It is unglamorous and it is noticeably better than either half.

Where does semantic search fail?

This is the part product pages skip.

It only knows the words it was given. An embedding is made from text. If the text is thin, the embedding is thin. A twelve-minute video captioned with two flame emoji is close to invisible to any search, semantic or not, because there was almost nothing to read. Nothing about “AI” changes this. The model is not watching the video.

That constraint applies to us and it is worth being blunt about: what Nemivo reads is the text a save carries, its caption, title and description. Not the video, not the image, not the audio. It is the single most important thing to understand about how well this will work on your own library, which is why it has its own section in how it works.

It is confidently approximate. Keyword search that finds nothing tells you it found nothing. Semantic search always returns the closest things it has, and if your library genuinely does not contain what you asked for, the closest thing is still something. Ten plausible wrong answers read as more authoritative than an honest empty result.

Very short queries carry little meaning. One word gives the model almost nothing to place. “Bread” is a category, not a query. “How to know when sourdough has proofed enough” is a meaning, and it will find far more.

How can you tell which one you are using?

Two tests, ten seconds each.

Search for a concept using words you are certain do not appear in the thing you are looking for. If it comes back, something is matching meaning. If you get nothing, you are talking to a keyword index with a modern font.

Then search for an exact handle or an unusual proper noun. If that fails, the meaning half has swallowed the precision half, and you will feel it every time you go looking for something specific.

The tool you want passes both. It is also the thing missing from every platform’s saved folder, which is why you never go back to what you save, and why searching your Instagram saves does not work at all.

Can you use semantic search on your own saved posts?

Not through Instagram, YouTube or Reddit, none of which will search your saves at all. It has to happen somewhere that holds a copy of the text.

That is the whole design of Nemivo. It runs in your browser, notices when you press the platform’s own save button, and keeps the caption while it is still on screen. Each save gets a summary, tags and an embedding, and the search box runs the hybrid arrangement described above: meaning and keywords ranked separately, then merged, so “that thing about knee pain from running” and @breadfolk both work.

The constraint from three sections up applies here in full, and it is the honest measure of how well this will work on your own library: what gets read is the text a save carries. A caption, a video title, a description. Not the footage, not the photograph, not the audio. How it works sets out exactly where that line falls before you sign up rather than after.

Answers to the rest of it

What is the difference between semantic search and keyword search?
Keyword search looks for documents containing the words you typed, so it fails on synonyms, paraphrase and other languages. Semantic search compares meaning by turning both your query and the documents into numbers and finding the closest ones, so it can match a passage that shares no words with your query at all.
What is an embedding?
A list of numbers, usually a few hundred to a couple of thousand of them, produced by a model that has read a piece of text. Its one useful property is that texts meaning similar things get similar lists, so closeness between two lists stands in for closeness in meaning.
Is semantic search always better?
No. It is worse than keyword search at exactly what keyword search is best at: handles, names, product codes, error messages and exact quotes. Blurring the detail is the whole mechanism, and that is not what you want when you are being specific.
What is hybrid search?
Running both methods and merging their rankings, so anything both approaches liked rises to the top while something only one of them found can still get in. It is unglamorous and noticeably better than either half alone.
Can semantic search find things in my videos and photos?
Not unless something produced text from them first. An embedding is made from text, so a twelve-minute video captioned with two emoji is close to invisible to any search. This is the limit that decides how well meaning-based search works on a library of social media saves.
Is there a semantic search for my Instagram or YouTube saves?
Not from the platforms themselves, which offer no search over saved content at all. Nemivo adds one: it captures the caption as you save, embeds it, and runs meaning-based and keyword search together so both a description and an exact handle find the right post. It only ever reads the text a save carries, so a video with no caption stays hard to find.
Why does semantic search return results even when there is no match?
Because it ranks by closeness rather than by presence. There is always a closest item, so an empty library returns plausible wrong answers instead of nothing, which reads as more authoritative than an honest empty result.

This is the problem Nemivo exists for.

Keep saving the way you already do. The caption gets read, summarized, tagged and filed, and you find it later by describing it.

Start Free