Faceted Search API
    
    API for faceted search has several interfaces - simple, top level ones, adequate for most users,
    and advanced, more complicated ones, for the more advanced users. 
    
    
    
    We now describe the simpler interfaces.
    There are mainly 3 interfaces for faceted search:
    
      - {@link org.apache.lucene.facet.search.params.FacetRequest Facets Request}
          defines requirements:
           
              - which facets are required, e.g. depth
- what is computed for each facet - e.g. count, score.
 
- {@link org.apache.lucene.facet.search.FacetsAccumulator Facets Extractor}
          Controls how facets are extracted, with variations of:
           
              - default (partitioned, like all extractors). 
- sampled - inspects only a fraction of the documents.
 
- {@link org.apache.lucene.facet.search.FacetResultsHandler Facet Results Handler }
          Controls how results are further processed and merged (also between partitions):
           
              - Top K.
- Tree.
- Tree with top K at each level
- ...