Package org.apache.lucene.facet.taxonomy
Class FastTaxonomyFacetCounts
java.lang.Object
org.apache.lucene.facet.Facets
org.apache.lucene.facet.taxonomy.FastTaxonomyFacetCounts
Computes facets counts, assuming the default encoding into DocValues was used.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionFastTaxonomyFacetCounts
(String indexFieldName, TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc) CreateFastTaxonomyFacetCounts
, using the specifiedindexFieldName
for ordinals.FastTaxonomyFacetCounts
(String indexFieldName, IndexReader reader, TaxonomyReader taxoReader, FacetsConfig config) CreateFastTaxonomyFacetCounts
, using the specifiedindexFieldName
for ordinals, and counting all non-deleted documents in the index.FastTaxonomyFacetCounts
(TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc) CreateFastTaxonomyFacetCounts
, which also counts all facet labels. -
Method Summary
Modifier and TypeMethodDescriptionprotected Number
Apply an aggregation to the two values and return the result.boolean
Returns true if the (costly, and lazily initialized) children int[] was initialized.protected Number
getAggregationValue
(int ordinal) Get the aggregation value for this ordinal.getAllChildren
(String dim, String... path) Returns all child labels with non-zero counts under the specified path.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.protected int
getCount
(int ordinal) Get the count for this ordinal.getSpecificValue
(String dim, String... path) Return the count or value for a specific path.getTopChildren
(int topN, String dim, String... path) Returns the topN child labels under the specified path.protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.TopChildrenForPath
getTopChildrenForPath
(FacetsConfig.DimConfig dimConfig, int pathOrd, int topN) Determine the top-n children for a specified dimension + path.getTopDims
(int topNDims, int topNChildren) Returns labels for topN dimensions and their topNChildren sorted by the number of hits/aggregated values that dimension matched.protected void
protected TopOrdAndNumberQueue.OrdAndValue
insertIntoQueue
(TopOrdAndNumberQueue q, TopOrdAndNumberQueue.OrdAndValue incomingOrdAndValue, int ord) protected TopOrdAndNumberQueue
makeTopOrdAndNumberQueue
(int topN) Return aTopOrdAndNumberQueue
of the appropriate type, i.e.protected Number
Return the value for a missing aggregation, i.e.protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.AggregatedValue
protected void
setCount
(int ordinal, int newValue) Set the count for this ordinal tonewValue
.protected void
setIncomingValue
(TopOrdAndNumberQueue.OrdAndValue incomingOrdAndValue, int ord) boolean
Returns true if the (costly, and lazily initialized) sibling int[] was initialized.protected void
updateValueFromRollup
(int ordinal, int childOrdinal) Roll-up the aggregation values fromchildOrdinal
toordinal
.Methods inherited from class org.apache.lucene.facet.Facets
validateTopN
-
Field Details
-
valueComparator
-
-
Constructor Details
-
FastTaxonomyFacetCounts
public FastTaxonomyFacetCounts(TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc) throws IOException CreateFastTaxonomyFacetCounts
, which also counts all facet labels.- Throws:
IOException
-
FastTaxonomyFacetCounts
public FastTaxonomyFacetCounts(String indexFieldName, TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc) throws IOException CreateFastTaxonomyFacetCounts
, using the specifiedindexFieldName
for ordinals. Use this if you had setFacetsConfig.setIndexFieldName(java.lang.String, java.lang.String)
to change the index field name for certain dimensions.- Throws:
IOException
-
FastTaxonomyFacetCounts
public FastTaxonomyFacetCounts(String indexFieldName, IndexReader reader, TaxonomyReader taxoReader, FacetsConfig config) throws IOException CreateFastTaxonomyFacetCounts
, using the specifiedindexFieldName
for ordinals, and counting all non-deleted documents in the index. This is the same result as searching onMatchAllDocsQuery
, but faster- Throws:
IOException
-
-
Method Details
-
initializeValueCounters
protected void initializeValueCounters() -
setCount
protected void setCount(int ordinal, int newValue) Set the count for this ordinal tonewValue
. -
getCount
protected int getCount(int ordinal) Get the count for this ordinal. -
getAggregationValue
Get the aggregation value for this ordinal. -
aggregate
Apply an aggregation to the two values and return the result. -
childrenLoaded
public boolean childrenLoaded()Returns true if the (costly, and lazily initialized) children int[] was initialized.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
siblingsLoaded
public boolean siblingsLoaded()Returns true if the (costly, and lazily initialized) sibling int[] was initialized.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
updateValueFromRollup
Roll-up the aggregation values fromchildOrdinal
toordinal
. Overrides should probably call this to update the counts. Overriding allows us to work with primitive types for the aggregation values, keeping aggregation efficient.- Throws:
IOException
-
makeTopOrdAndNumberQueue
Return aTopOrdAndNumberQueue
of the appropriate type, i.e. aTopOrdAndIntQueue
or aTopOrdAndFloatQueue
. -
missingAggregationValue
Return the value for a missing aggregation, i.e.-1
or-1f
. -
getAllChildren
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
-
setIncomingValue
-
insertIntoQueue
protected TopOrdAndNumberQueue.OrdAndValue insertIntoQueue(TopOrdAndNumberQueue q, TopOrdAndNumberQueue.OrdAndValue incomingOrdAndValue, int ord) -
newAggregatedValue
protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.AggregatedValue newAggregatedValue() -
getTopChildrenForPath
protected org.apache.lucene.facet.taxonomy.TaxonomyFacets.TopChildrenForPath getTopChildrenForPath(FacetsConfig.DimConfig dimConfig, int pathOrd, int topN) throws IOException Determine the top-n children for a specified dimension + path. Results are in an intermediate form.- Throws:
IOException
-
getTopChildren
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
-
getSpecificValue
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
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
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
-