Two-stage dense retrieval and multivector reranking
I would make the dense vector search the high-recall candidate generator and set its limit to 500. The second stage would use the ColBERT multivector representation to score those candidates more precisely, returning only the final top-k results.
The reason for this architecture is computational economics. Dense ANN retrieval is comparatively cheap and can search a large collection, while late-interaction scoring is more expensive. Restricting ColBERT scoring to 500 candidates gives the reranker a manageable workload while preserving most of the candidate recall.
The important detail is that the ColBERT representation must already be stored as a compatible multivector in Qdrant, and the query must target that vector configuration. The exact query syntax for multivectors and late interaction is version-sensitive, so I would use the API corresponding to the deployed Qdrant release.
A common mistake is setting the prefetch limit equal to the final top-k. That leaves the reranker too few candidates and can cap recall before reranking even starts.
Dense ANN is used for high-recall candidate generation
The reranker operates only on the prefetched candidates
ColBERT uses a multivector late-interaction representation
Candidate count should be tuned for recall, latency, and reranking cost
0-2 years experience
2-5 years experience
5-8 years experience
8+ years experience