Questions
4 of 18
1Why did Qdrant consolidate search, recommend, and discovery operations into the Universal Query API?
2What is a prefetch stage in Qdrant's Universal Query API, and why would you use multiple prefetches?
3How do Reciprocal Rank Fusion and Distribution-Based Score Fusion differ when combining Qdrant prefetch results?
4How would you retrieve 500 candidates with dense vectors and rerank them using a ColBERT multivector?
5What is Qdrant's recommend query mode, and how is it different from plain similarity search?
6How does Qdrant combine vector similarity search with structured payload filters?
7What are must, should, and must_not clauses in a Qdrant payload filter?
8Why can filtering after an ANN search return too few results when the filter is highly selective?
9How does Qdrant's filtered vector search avoid the classic post-filtering problem?
10How would you implement a geo-radius search for similar items within 5 km of a location in Qdrant?
11Why should you create payload indexes for fields that are filtered frequently at scale?
12What payload index types does Qdrant support, and how would you choose one for tags versus price?
13What is a full-text payload index used for, and how does it differ from an exact-match keyword index?
14What is the cost of creating too many payload indexes on a high-write Qdrant collection?
15Why should point uploads be batched instead of sending one upsert request per point?
16What is Qdrant's Scroll API used for, and why is it preferable to vector search when iterating through matching points?
17How does Qdrant Scroll pagination avoid the main performance problem of large SQL OFFSET pagination?
18What is a realistic batch size for bulk-loading millions of Qdrant points, and what factors should influence it?
04 / 18

How would you retrieve 500 candidates with dense vectors and rerank them using a ColBERT multivector?

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.

javascript
  1. 1

    Dense ANN is used for high-recall candidate generation

  2. 2

    The reranker operates only on the prefetched candidates

  3. 3

    ColBERT uses a multivector late-interaction representation

  4. 4

    Candidate count should be tuned for recall, latency, and reranking cost

Difficulty: 9/10
Topics: Multivectors, ColBERT, Reranking, Multi-stage retrieval

Scenario Questions

0-2 years experience
  1. 1

    Why would a retrieval system use a cheap first-stage search before an expensive reranker?

  2. 2

    If the relevant document is not among the 500 dense candidates, can the ColBERT reranker recover it? Why not?

2-5 years experience
  1. 1

    Your reranker is accurate but too slow when given 2,000 candidates. How would you tune the first-stage candidate count?

  2. 2

    Increasing dense candidates from 500 to 1,000 improves recall slightly but doubles reranking latency. How would you evaluate the trade-off?

5-8 years experience
  1. 1

    Your ColBERT stage improves precision but creates a p99 latency regression. How would you optimize the two-stage retrieval pipeline?

  2. 2

    Dense retrieval has strong recall for English but weak recall for multilingual queries. Would increasing the candidate count solve the problem? How would you investigate?

8+ years experience
  1. 1

    You need to serve a multimodal RAG workload with dense retrieval followed by late interaction under a strict latency SLO. How would you architect and tune candidate generation versus reranking?

  2. 2

    A new reranker improves NDCG substantially but increases compute cost by 10x. How would you decide where in the retrieval pipeline it belongs?

Follow-up Questions

  • Why is 500 a candidate count rather than a fixed best practice?
  • What happens if the dense prefetch misses a relevant document that ColBERT would have ranked highly?