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 record
Similar 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 boolean
areOverlappingRanges
(LongRange[] ranges) (package private) abstract List
<LongRangeFacetCutter.InclusiveRange> Generates non-overlapping intervals that cover requested ranges and gaps in-between.static LongRangeFacetCutter
create
(MultiLongValuesSource longValuesSource, LongRange[] longRanges) (package private) static LongRangeFacetCutter
createSingleOrMultiValued
(MultiLongValuesSource longValuesSource, LongValuesSource singleLongValuesSource, LongRange[] longRanges) CreateFacetCutter
for provided value source and long ranges.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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) CreateFacetCutter
for 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
-