Surprised this doesn't mention Materialized Views. Those can be used to create the buckets/facets from the larger table then offer faster lookup of the facet values.
Creating the MView would still be from a sequential scan but then you'll have small/fast views to queue queries for the huge table.