Module org.apache.lucene.sandbox
Class LongRangeFacetCutter
java.lang.Object
org.apache.lucene.sandbox.facet.cutters.ranges.LongRangeFacetCutter
- All Implemented Interfaces:
FacetCutter
- Direct Known Subclasses:
NonOverlappingLongRangeFacetCutter,OverlappingLongRangeFacetCutter
FacetCutter for ranges of long values. It's based on LongRangeCounter class.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final recordSimilar to InclusiveRange from LongRangeCounter.(package private) static final record(package private) static class(package private) static class -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final long[]elementary interval boundaries used for efficient counting (bsearch to find interval)(package private) final List<LongRangeFacetCutter.InclusiveRange> (package private) final int[](package private) final int(package private) final LongValuesSource(package private) static final int(package private) final LongRangeFacetCutter.LongRangeAndPos[](package private) final MultiLongValuesSource -
Constructor Summary
ConstructorsConstructorDescriptionLongRangeFacetCutter(MultiLongValuesSource longValuesSource, LongValuesSource singleLongValuesSource, LongRange[] longRanges) -
Method Summary
Modifier and TypeMethodDescriptionprivate static booleanareOverlappingRanges(LongRange[] ranges) (package private) abstract List<LongRangeFacetCutter.InclusiveRange> Generates non-overlapping intervals that cover requested ranges and gaps in-between.static LongRangeFacetCuttercreate(MultiLongValuesSource longValuesSource, LongRange[] longRanges) (package private) static LongRangeFacetCuttercreateSingleOrMultiValued(MultiLongValuesSource longValuesSource, LongValuesSource singleLongValuesSource, LongRange[] longRanges) CreateFacetCutterfor provided value source and long ranges.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.lucene.sandbox.facet.cutters.FacetCutter
createLeafCutter, getChildrenOrds, getOrdinalsToRollup
-
Field Details
-
valuesSource
-
singleValues
-
sortedRanges
-
requestedRangeCount
final int requestedRangeCount -
elementaryIntervals
-
boundaries
final long[] boundarieselementary interval boundaries used for efficient counting (bsearch to find interval) -
pos
final int[] pos -
SKIP_INTERVAL_POSITION
static final int SKIP_INTERVAL_POSITION- See Also:
-
-
Constructor Details
-
LongRangeFacetCutter
LongRangeFacetCutter(MultiLongValuesSource longValuesSource, LongValuesSource singleLongValuesSource, LongRange[] longRanges)
-
-
Method Details
-
createSingleOrMultiValued
static LongRangeFacetCutter createSingleOrMultiValued(MultiLongValuesSource longValuesSource, LongValuesSource singleLongValuesSource, LongRange[] longRanges) CreateFacetCutterfor provided value source and long ranges. -
create
public static LongRangeFacetCutter create(MultiLongValuesSource longValuesSource, LongRange[] longRanges) -
buildElementaryIntervals
Generates non-overlapping intervals that cover requested ranges and gaps in-between. Each elementary range refers to a gap, single requested range, or multiple requested ranges when they overlap. -
areOverlappingRanges
-