Bitmap heap scan
The PostgreSQL plan node used when an index matches too many rows for a plain index scan but too few to justify reading the whole table.
The trouble with a straight index scan over ten thousand matches is that rows are fetched in index order, which means the disk jumps back and forth across the table. The solution is to walk the index first and build an in-memory bitmap of which pages contain matches, sort it into physical order, and then read those pages sequentially. Two indexes can additionally be combined with AND or OR before the table is touched at all. If work_mem isn't enough for an exact bitmap it degrades to marking pages rather than rows, and then Recheck Cond appears in the plan — the condition has to be re-evaluated for every row on those pages.