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
      • getAllChildren

        public FacetResult getAllChildren​(String dim,
                                          String... path)
                                   throws IOException
        Description copied from class: Facets
        Returns all child labels with non-zero counts under the specified path. Users should make no assumptions about ordering of the children. Returns null if the specified path doesn't exist or if this dimension was never seen.
        Specified by:
        getAllChildren 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. Note that dims should be configured as requiring dim counts if using this functionality to ensure accurate counts are available (see: FacetsConfig.setRequireDimCount(String, boolean)).

        Sub-classes may want to override this implementation with a more efficient one if they are able.

        Overrides:
        getTopDims in class Facets
        Throws:
        IOException