Class SortedSetDocValuesFacetCounts


  • public class SortedSetDocValuesFacetCounts
    extends Facets
    Compute facets counts from previously indexed SortedSetDocValuesFacetField, without require a separate taxonomy index. Faceting is a bit slower (~25%), and there is added cost on every IndexReader open to create a new SortedSetDocValuesReaderState. Furthermore, this does not support hierarchical facets; only flat (dimension + label) facets, but it uses quite a bit less RAM to do so.

    NOTE: this class should be instantiated and then used from a single thread, because it holds a thread-private instance of SortedSetDocValues.

    NOTE: tie-break is by unicode sort order

    NOTE: if you have multi-valued dims that require dim counts (see FacetsConfig, make sure to provide your FacetsConfig instance when instantiating SortedSetDocValuesReaderState, or else dim counts can be inaccurate

    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Method Detail

      • getTopChildren

        public FacetResult getTopChildren​(int topN,
                                          String dim,
                                          String... path)
                                   throws IOException
        Description copied from class: Facets
        Returns the topN child labels under the specified path. Returns null if the specified path doesn't exist or if this dimension was never seen.
        Specified by:
        getTopChildren in class Facets
        Throws:
        IOException
      • getAllDims

        public List<FacetResult> getAllDims​(int topN)
                                     throws IOException
        Description copied from class: Facets
        Returns topN labels for any dimension that had hits, sorted by the number of hits that dimension matched; this is used for "sparse" faceting, where many different dimensions were indexed, for example depending on the type of document.
        Specified by:
        getAllDims in class Facets
        Throws:
        IOException
      • getTopDims

        public List<FacetResult> getTopDims​(int topNDims,
                                            int topNChildren)
                                     throws IOException
        Description copied from class: Facets
        Returns labels for topN dimensions and their topNChildren sorted by the number of hits/aggregated values that dimension matched; Results should be the same as calling getAllDims and then only using the first topNDims; Sub-classes may want to override this implementation with a more efficient one if they are able.
        Overrides:
        getTopDims in class Facets
        Throws:
        IOException