Question about the implementation principle of post-filtering query for sparse vectors

For the implementation of sparse vector post filtering, is it to query all results and then perform post filtering, or to query k results and then perform post filtering.

{
  "query": {
    "bool": {
      "must": [{"sparse_vector": {...}}]
    }
  },
  "size": top_k,
  "post_filter": {"range": {"id": {"gte": start_id}}}
}