Questions
8 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?
08 / 18

Why can filtering after an ANN search return too few results when the filter is highly selective?

Why post-filtering can fail

Suppose you request the top 10 nearest vectors from the entire collection and only afterward apply a filter such as tenant=A. If none of those ten nearest points belongs to tenant A, the application gets zero results even though thousands of tenant-A points may exist.

The root problem is that the top-k operation and the filter were applied in the wrong order. ANN returns a candidate set optimized for global similarity, not for the constrained result set. A highly selective filter can therefore remove most or all of the retrieved candidates.

The trade-off in a naive workaround is over-fetching. You can retrieve a much larger global candidate set and filter it afterward, but that increases latency and still does not provide a principled guarantee that enough eligible candidates were considered.

A common mistake is assuming 'top-k then filter' is equivalent to 'top-k among filtered points.' It is not. For production workloads, the filter should participate in the database retrieval process so the search can find eligible candidates rather than discarding them afterward.

javascript
  1. 1

    Top-k global retrieval followed by filtering can under-return results

  2. 2

    Highly selective filters make post-filtering especially dangerous

  3. 3

    Over-fetching is a workaround, not a reliable solution

  4. 4

    Filtering should participate in retrieval when correctness and scale matter

Difficulty: 6/10
Topics: Filtered vector search, ANN search, Filtering

Scenario Questions

0-2 years experience
  1. 1

    There are 100,000 vectors in a collection but only 20 belong to tenant A. Why can searching the global top 10 and then filtering produce zero results?

  2. 2

    A developer says the database should always find tenant-A results because they exist. What is wrong with that reasoning?

2-5 years experience
  1. 1

    A filter returns zero results only for small top-k values but works when top-k is 1,000. What does that suggest about the query architecture?

  2. 2

    Your team proposes retrieving 10,000 global neighbors and filtering them in application code. What trade-offs would you explain?

5-8 years experience
  1. 1

    A production query has highly selective authorization filters and occasionally returns fewer results than requested. How would you determine whether the issue is post-filtering, ANN behavior, or insufficient eligible data?

  2. 2

    A workaround increases candidate retrieval by 100x but causes latency spikes. What architectural change would you recommend instead?

8+ years experience
  1. 1

    Your security model requires retrieval to be constrained by tenant and authorization filters while maintaining high ANN recall. How would you design the retrieval architecture to make post-filtering unnecessary?

  2. 2

    A benchmark shows integrated filtering has higher latency than unfiltered ANN, but post-filtering violates result-count correctness. How would you establish the production trade-off?

Follow-up Questions

  • Why does increasing the initial top-k only partially solve post-filtering?
  • How does integrated filtering change the candidate-selection problem?