Half a Percent

A multi-tenant search API filters by tenant id, and one tenant owns 0.5 percent of the corpus. The service runs ANN first and applies the filter to the results, so that tenant's requests often come back with 2 or 3 hits instead of 10. Which approaches actually fix this?

A

Fall back to an exact scan over the matching subset when the filter is selective enough to make it cheap

B

Append the tenant id as extra dimensions of the embedding so the distance function encodes the filter itself

C

Push the predicate into the graph traversal so only matching vectors count toward the candidate list

D

Partition the index by tenant so each request searches only that tenant's own vectors

E

Keep post-filtering and raise k until enough rows survive, since ANN cost is independent of how many results you ask for