Class LongAggregationsFacetRecorder
- java.lang.Object
-
- org.apache.lucene.sandbox.facet.recorders.LongAggregationsFacetRecorder
-
- All Implemented Interfaces:
FacetRecorder
public final class LongAggregationsFacetRecorder extends Object implements FacetRecorder
FacetRecorderthat computes multiple long aggregations per facet.TODO: [premature optimization idea] if instead of one array we keep aggregations in two LongVector (one for MAX aggregation and one for SUM) we can benefit from SIMD?
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Constructor Summary
Constructors Constructor Description LongAggregationsFacetRecorder(LongValuesSource[] longValuesSources, Reducer[] reducers)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontains(int ordinal)Check if any data was recorded for provided facet ordinal.LeafFacetRecordergetLeafRecorder(LeafReaderContext context)Get leaf recorder.longgetRecordedValue(int ord, int valuesId)Return aggregated value for facet ordinal and aggregation ID, or zero as default.booleanisEmpty()True if there are no recordsOrdinalIteratorrecordedOrds()Return next collected ordinal, orOrdinalIterator.NO_MORE_ORDSvoidreduce(FacetCutter facetCutter)Reduce leaf recorder results into this recorder.
-
-
-
Constructor Detail
-
LongAggregationsFacetRecorder
public LongAggregationsFacetRecorder(LongValuesSource[] longValuesSources, Reducer[] reducers)
Constructor.
-
-
Method Detail
-
getLeafRecorder
public LeafFacetRecorder getLeafRecorder(LeafReaderContext context) throws IOException
Description copied from interface:FacetRecorderGet leaf recorder.- Specified by:
getLeafRecorderin interfaceFacetRecorder- Throws:
IOException
-
recordedOrds
public OrdinalIterator recordedOrds()
Description copied from interface:FacetRecorderReturn next collected ordinal, orOrdinalIterator.NO_MORE_ORDS- Specified by:
recordedOrdsin interfaceFacetRecorder
-
isEmpty
public boolean isEmpty()
Description copied from interface:FacetRecorderTrue if there are no records- Specified by:
isEmptyin interfaceFacetRecorder
-
reduce
public void reduce(FacetCutter facetCutter) throws IOException
Description copied from interface:FacetRecorderReduce leaf recorder results into this recorder. IfFacetCutter.getOrdinalsToRollup()result is not null, it also rolls up values.After this method is called, it's illegal to add values to recorder, i.e. calling
FacetRecorder.getLeafRecorder(org.apache.lucene.index.LeafReaderContext)orLeafFacetRecorder.record(int, int)on its leaf recorders.- Specified by:
reducein interfaceFacetRecorder- Throws:
IOException
-
contains
public boolean contains(int ordinal)
Description copied from interface:FacetRecorderCheck if any data was recorded for provided facet ordinal.- Specified by:
containsin interfaceFacetRecorder
-
getRecordedValue
public long getRecordedValue(int ord, int valuesId)Return aggregated value for facet ordinal and aggregation ID, or zero as default.
-
-