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 indexedSortedSetDocValuesFacetField
, without require a separate taxonomy index. Faceting is a bit slower (~25%), and there is added cost on everyIndexReader
open to create a newSortedSetDocValuesReaderState
.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 yourFacetsConfig
instance when instantiatingSortedSetDocValuesReaderState
, 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 onMatchAllDocsQuery
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 FacetResult
getAllChildren(String dim, String... path)
Returns all child labels with non-zero counts under the specified path.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.-
Methods inherited from class org.apache.lucene.facet.Facets
validateTopN
-
-
-
-
Constructor Detail
-
SortedSetDocValuesFacetCounts
public SortedSetDocValuesFacetCounts(SortedSetDocValuesReaderState state) throws IOException
Returns all facet counts, same result as searching onMatchAllDocsQuery
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 classFacets
- 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 classFacets
- 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 classFacets
- 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 classFacets
- 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 classFacets
- Throws:
IOException
-
-