The shared template: project, prune, refine
Which architecture do most special engines converge on, and what does its approximation have to respect?
The shared template
Three of the five families converge on the same architecture. It is worth naming once and then recognizing everywhere:
| Family | Hard object | Cheap projection | Then |
|---|---|---|---|
| Text | document | set of terms (postings) | score the survivors |
| Geospatial | polygon | bounding box or grid cell | run the exact geometric test (called filter-and-refine in spatial literature) |
| Vector | vector | cluster id or quantized code | exact distance on the candidates |
Each is a lossy compression used as an index. Compression and sketches (which were storage savings in earlier material) reappear here as an access path: a way to find data, not only a way to store it.
Each first stage is cheap and wide (a few hundred candidates out of millions), and each second stage is expensive and narrow. Its main limit is stated in phrase queries: the recall of the whole system can never exceed the recall of stage one.
The two families that deviate are the instructive ones
- Graph has no such projection. There is no bounding box for reachability, and no sketch that bounds a traversal without false negatives. Any structure that lets you skip edges can make you miss paths. So graph engines change the execution model instead. A framework called Pregel/BSP (Bulk Synchronous Parallel) converts unpredictable pointer-chasing into one data shuffle per hop. A shuffle is the redistribution of data between machines so that matching records meet. The lesson: the real cost of graph work is coordination per level, not I/O per edge.
- Time series skips indexing entirely and specializes the encoding, because the predicate was never hard to begin with.
What the approximation must respect
What is genuinely new here is the disappearance of a verifiable correctness criterion. The consequence: quality becomes a metric to be evaluated rather than a property to be enforced. Two rules follow, and the families keep obeying them.
- Where ground truth is defined (containment, reachability, equality), the approximation must be one-sided: a filter with no false negatives, followed by exact refinement.
- Where ground truth is undefined (relevance, similarity), approximation can be two-sided (errors in both directions) and the error is simply absorbed into quality.
This is the cleanest discriminator here. It explains why spatial indexes always refine and vector indexes usually do not.
When the oracle is outside the system, correctness is replaced by reproducibility. You cannot assert that a ranking is right or that an embedding is current. So you assert instead that the same inputs produce the same outputs: pinned index builds, declared conventions, A/B evaluation (showing two versions to different users and measuring the outcome). Reproducibility is the only testable substitute for truth.