I almost forgot ... if/when you want to "apply" some of those facets to a query provided by your user, put the queries for each facet into a list and use...
List<Query> facetToApply = ...
DocList result = searcher.getDocList(mainQuery, facetsToApply,
yourSort, 0, 20, searcher.GET_SCORES)
..and the filterCache will be used for each facet, the cache DocSets will
all be intersected, and the resulting DocSet will be converted to a Filter
that will be applied when your mainQuery is executed.
-Hoss
