Post-filtering is a strategy for combining metadata conditions with vector search by running the similarity search first across the full index, then removing any results that fail to meet the filter. The vector search is unaware of the filter; the filter is applied only afterward, to the results it returns.
Its main advantage is that it preserves recall in the vector search itself, since the index operates over the complete dataset exactly as it was built, with no disruption to its structure. This avoids the navigability problems that pre-filtering can cause when a filter removes too many candidates before the search runs.
The drawback is that you may end up with fewer results than requested. If most of the top similarity matches happen to fail the filter, post-filtering discards them and can leave too few survivors. The common remedy is over-retrieval — fetching a larger candidate set than needed, say fifty instead of ten, so that enough remain after filtering. Post-filtering works best when filters are not too selective; for highly restrictive filters, pre-filtering or in-graph filtering is usually better.