Package org.apache.lucene.facet.sortedset

## Class SortedSetDocValuesFacetCounts

- java.lang.Object
- - org.apache.lucene.facet.Facets
  - - org.apache.lucene.facet.sortedset.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.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SortedSetDocValuesFacetCounts​(SortedSetDocValuesReaderState state)` | Returns all facet counts, same result as searching on `MatchAllDocsQuery` but faster.
    `SortedSetDocValuesFacetCounts​(SortedSetDocValuesReaderState state, FacetsCollector hits)` | Counts all facet dimensions across the provided hits.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `List<FacetResult>` | `getAllDims​(int topN)` | 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.
    `Number` | `getSpecificValue​(String dim, String... path)` | Return the count or value for a specific path.
    `FacetResult` | `getTopChildren​(int topN, String dim, String... path)` | Returns the topN child labels under the specified path.
    `List<FacetResult>` | `getTopDims​(int topNDims, int topNChildren)` | 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.

    - ### Methods inherited from class org.apache.lucene.facet.Facets

      `validateTopN`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SortedSetDocValuesFacetCounts

          public SortedSetDocValuesFacetCounts​(SortedSetDocValuesReaderState state)
                                        throws IOException

      Returns all facet counts, same result as searching on `MatchAllDocsQuery` but faster.
      Throws:
        `IOException`

    - #### SortedSetDocValuesFacetCounts

          public SortedSetDocValuesFacetCounts​(SortedSetDocValuesReaderState state,
                                               FacetsCollector hits)
                                        throws IOException

      Counts all facet dimensions across the provided hits.
      Throws:
        `IOException`

  - ### 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`

    - #### getSpecificValue

          public Number getSpecificValue​(String dim,
                                         String... path)
                                  throws IOException

      Description copied from class: `Facets`
      Return the count or value for a specific path. Returns -1 if this path doesn't exist, else the count.
      Specified by:
        `getSpecificValue` 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`