What an embedding actually is, why similarity becomes arithmetic, and the exact corpus size at which exact search stops being an option — measured against a real Qdrant, including the two ways this part’s own lab was wrong while passing every check.
Create a collection, put points in it, get answers out — and find out what the distance metric really decides. On unit vectors all three metrics return the identical ranking; the moment lengths mean nothing, two of them break.
The index Qdrant actually uses, explained by building it up from one idea — link every vector to a few neighbours and walk downhill. Layers, m, ef_construct and ef, what each one costs, and why the search is allowed to be wrong.
How to find out whether your index is actually returning the right answers — building ground truth, computing recall@k, and the four ways a benchmark quietly lies to you. The methodology part of the series, and the one the others depend on.
Vectors are the memory bill, and quantization is how you cut it — by 4×, 16× or 32×, in exchange for accuracy you get most of back through rescoring. What each method throws away, and the arithmetic for deciding before you pay for the RAM.
Most real queries are not “find similar” but “find similar, where the tenant is this and the date is after that”. How payloads work, what a payload index is for, and the conditions Qdrant actually supports.
Pre-filter and post-filter are both wrong, and understanding why is the most useful thing in vector search. What breaks when a filter and a graph disagree, what Qdrant does about it, and why a more selective filter can be either much faster or much slower.
One collection or many, how to isolate tenants without a collection each, and what named vectors, multivectors and sparse vectors are for. The design decisions you make once and live with.
Dense vectors find meaning and miss exact words. Sparse vectors do the opposite. Running both and combining the results is the single biggest retrieval-quality improvement most systems can make — here is how, with Qdrant’s Query API.
Segments, the optimiser, the write-ahead log and what mmap really does. How a collection is laid out on disk, what has to be in RAM for search to be fast, and why your first query after a restart is the slow one.
How to back up a collection, how to restore one, and the alias swap that lets you rebuild an index with a new model or new parameters while traffic keeps flowing. The operational part you need before your first incident, not after.
What happens when one machine isn’t enough. Shards split the data, replicas copy it, and the consistency factors decide what “written” and “read” mean when a node is missing.
Qdrant starts with no authentication at all. What to turn on before it faces anything, how read-only and scoped access work, which metrics are worth an alert, and how to plan capacity from the arithmetic in this series.
Putting the whole series together — chunking, embedding, indexing, hybrid retrieval, reranking and the evaluation loop that tells you whether any of it worked. The part where the decisions stop being independent.