Interlinked.

Explainers · updated July 2026

A vector database finds what’s similar, not what matches.

In one line: a vector database stores pieces of text as coordinates in a space of meaning, and its one trick is to answer “what’s nearest?” instead of “what’s an exact copy?” It’s the storage engine behind a Pinecone-style RAG setup and the reason Cursor can find the right function when you don’t know its name. It genuinely helps, for one kind of question. Here’s how it works in plain English, and the honest answer to “do you need one for code?”

How similarity search works

Meaning becomes distance. Nearest wins.

A model reads each chunk of text and hands back a list of a few hundred numbers, its coordinates. Similar ideas land at nearby coordinates, so “find code like this” becomes “find the closest points.” The database’s job is to store millions of those coordinates and, given your question turned into the same kind of coordinates, return the k nearest, ranked by a distance score, even when they share not one word with what you typed. That is the whole idea. The picture is the fastest way to see it, next to the other way to find code, an exact index that maps a literal word straight to the files that contain it.

VECTOR DATABASEstores meaning as coordinatesasks: what is nearest? (dims flattened to 2 here)sendEmail()parseCSV()renderChart()1refundOrder()0.922issueCredit()0.883voidPayment()0.81“give money back”your question → a vectorReturns the k nearest by distance: ranked, scored, approximate.“issueCredit” shares no words with the query, yet ranks #2.EXACT INDEXa word → the files that contain itdeterministic · one hop · no modelYOU SEARCHprocessRefundone lookupEVERY EXACT MATCHbilling.ts : 42api/refunds.py : 88refund.test.ts : 9checkout.tsx : 180same query → same rows, every run. No scores.No ranking, no guess. Fresh to the last save.Whole-machine: every repo + the files git ignores.THE VECTOR DB ANSWERS“What’s near in meaning?”semantic · ranked · approximateTHE EXACT INDEX ANSWERS“Where is this exact word?”literal · deterministic · fresh

Left is a vector database (Pinecone, and what Cursor builds for the repo you open). Right is an exact index (what Interlinked keeps for the whole machine). They answer different questions, which is exactly why they belong in the same stack, not in a fight.

Where a vector database shines

Brilliant, when you don’t know the words.

This is not a takedown. For one class of question, a vector database is exactly the right tool, and the products built on it are good. Pinecone is the storage layer behind most RAG setups; Cursor embeds the repo you open so you can ask “where do we handle refunds?” and get the right file without knowing its name. Three things they genuinely nail:

Meaning, not spelling

Ask in plain English and get the right function even when you don't know what it's called. “Give money back” finds issueCredit() with no shared words, the whole point of searching by distance.

Discovery over an area

“Explain the auth flow,” “what touches billing?” Questions with no single literal answer. Nearest-neighbour recall is built for exactly this, and it's why RAG feeds a model relevant context it would never have grepped for.

Concepts across files

Similar ideas cluster even across languages and folders, so related code surfaces together without a shared keyword to search for. One query, a whole neighbourhood of intent.

Keep it. Nothing below asks you to give up your vector database or Cursor’s index. The point is only that “search by meaning” solves the fuzzy question, and a different, very common question needs the opposite guarantee.

Do you need one for code?

For meaning, maybe. For exact code, it’s the wrong shape.

Approximate, twice over

A vector database is approximate on two levels. The embedding is an approximation of meaning; then, to stay fast over millions of vectors, the search itself is approximate nearest-neighbour: it deliberately doesn't check every point. Ask “where is this exact call site?” and you get the closest guesses, with no promise the one you meant is even in the top results.

It drifts as you edit

Vectors are a snapshot. Rename a function, refactor a module, add a file, and the stored coordinates keep pointing at the old code until you re-index. Between rebuilds the database quietly describes a codebase that no longer exists.

It's infrastructure to run

Staying fresh means recomputing and re-loading vectors: compute, latency, cost, and a service to operate. For cloud RAG and Cursor, keeping current also means your code leaves the machine to be turned into vectors. It's a pipeline you own, not a free property.

TWO CHANCES TO BE ROUGHLY RIGHT, OR ONE WAY TO BE EXACTLY RIGHT
VECTOR DATABASE PATH(approximate twice)YOUR MEANINGEMBED≈ approximateA VECTORSEARCH · ANN≈ approximateRANKED GUESS≈ roughly rightEXACT INDEX PATH(exact once)YOUR WORDEXACT LOOKUP= literal matchTHE FILES THAT CONTAIN IT= exactly rightFor discovery, approximately right is fine. For “find every call to processRefund,” it isn’t: that needs the exact hop.

None of this makes a vector database bad: it makes it a fuzzy-recall system with a maintenance cost. The trouble starts the moment an agent needs the opposite: the exact string, the current bytes, the symbol that changed thirty seconds ago, everywhere on the machine. That is not a meaning question. It is a lookup, and for a lookup you don’t need a vector database, you need an exact index.

The exact lane · Ryzen 9 9950X3D · 4.47M files

When you know the words, you want them exact.

A name, a symbol, a string, an error message: the moment the word is known, ranking-by-similarity is the wrong shape. You want every literal match, deterministically, fresh to the last save, across the whole machine. That’s a purpose-built indexed engine with no model inside to drift or re-load. Measured on the machine below:

139 μs
median filename lookup across 4.47M files (85 μs single file, best case 2 μs)
~8 ms
typical content query: 7 to 9 ms, exact phrases ~16 ms
~1 ms
from save to searchable, under 30 ms in the worst case
THE SAME CONTENT QUERY, TWO WAYS
ripgrep, walking the disk
93.8 s
Interlinked, straight off the index
16 ms
58,625×
faster across the set

Methodology: Ryzen 9 9950X3D · 64 GB DDR5 · NVMe · Windows 11 · 4,470,000 files. Filename figures are medians: 139 μs across 20 queries, 85 μs single-file; the same lookup is 412,000× a VS Code search and ~480,000× Windows Search. Content queries run about 7 to 9 ms, exact phrases near 16 ms. At rest the engine sits near 44 MB in Task Manager, and the on-disk index stays under 1% of the drive (~24 GB on a 4 TB machine). No embeddings, nothing to re-index.

The thesis

Keep the vector database. Add the exact lane under it.

A vector database and a live index aren’t rivals: they answer different questions, so they run in parallel. Point vectors at meaning, where fuzzy recall is the feature. Point the index at the exact file, symbol, string, or error message. Whole-machine, across every repo and the files git ignores, fresh to the last save. No model in the loop: every hit is a literal match you can verify, not a ranked guess, and nothing to re-embed. Interlinked is the exact-retrieval lane. It replaces neither your model nor your vector database; it’s the deterministic floor they stand on.

0 LLMs
every hit is a literal match you can check, never a model's guess, never a vector to drift
26,958 pairs
relationships seeded across 12 of 12 repos from 8,455 git events in 1.7 s: no model, its own history
19 clients
auto-configured in one install: Claude Code, Cursor, Copilot, Codex, Windsurf, Zed and the rest

PARALLEL TO RAG · EXACT, FAST, FRESH · NO MODEL IN THE LOOP.

Give every agent the exact lane

Keep search-by-meaning. Add search-by-fact.

One signed installer indexes every file on your machine (names and contents) and wires up the AI clients you already use, with no JSON to edit, no cloud account, and no keys. Keep your vector database and Cursor’s index for the fuzzy questions; every agent also gets a fast, literal, whole-machine lookup for the exact ones. It stays fresh on its own: a save is searchable in about a millisecond, with no vectors to recompute.

Everything local is free forever, on all your devices, no card. Hosting starts at $5.99/mo. Download for Windows.

Related: What are embeddings for code? · RAG, a live index, or grep?

Measured July 2026 · Ryzen 9 9950X3D · 4.47M files · Windows 11← All research