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 everyIndexReaderopen to create a newSortedSetDocValuesReaderState. 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 yourFacetsConfiginstance 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 onMatchAllDocsQuerybut 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.NumbergetSpecificValue(String dim, String... path)Return the count or value for a specific path.FacetResultgetTopChildren(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
-
-
-
-
Constructor Detail
-
SortedSetDocValuesFacetCounts
public SortedSetDocValuesFacetCounts(SortedSetDocValuesReaderState state) throws IOException
Returns all facet counts, same result as searching onMatchAllDocsQuerybut 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:FacetsReturns 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:
getTopChildrenin classFacets- Throws:
IOException
-
getSpecificValue
public Number getSpecificValue(String dim, String... path) throws IOException
Description copied from class:FacetsReturn the count or value for a specific path. Returns -1 if this path doesn't exist, else the count.- Specified by:
getSpecificValuein classFacets- Throws:
IOException
-
getAllDims
public List<FacetResult> getAllDims(int topN) throws IOException
Description copied from class:FacetsReturns 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:
getAllDimsin classFacets- Throws:
IOException
-
getTopDims
public List<FacetResult> getTopDims(int topNDims, int topNChildren) throws IOException
Description copied from class:FacetsReturns 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:
getTopDimsin classFacets- Throws:
IOException
-
-