Module org.apache.lucene.sandbox
Class OverlappingLongRangeFacetCutter
java.lang.Object
org.apache.lucene.sandbox.facet.cutters.ranges.LongRangeFacetCutter
org.apache.lucene.sandbox.facet.cutters.ranges.OverlappingLongRangeFacetCutter
- All Implemented Interfaces:
FacetCutter
LongRangeFacetCutter
for ranges of long value that overlap. Uses segment tree
optimisation to find all matching ranges for a given value fast-range-faceting-
using-segment-trees.html-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
TODO: dedup OverlappingMultivaluedRangeLeafFacetCutter and OverlappingSingleValuedRangeLeafFacetCutter code - they are identical but they extend different base classes.(package private) static class
Nested classes/interfaces inherited from class org.apache.lucene.sandbox.facet.cutters.ranges.LongRangeFacetCutter
LongRangeFacetCutter.InclusiveRange, LongRangeFacetCutter.LongRangeAndPos, LongRangeFacetCutter.LongRangeMultivaluedLeafFacetCutter, LongRangeFacetCutter.LongRangeSingleValuedLeafFacetCutter
-
Field Summary
FieldsFields inherited from class org.apache.lucene.sandbox.facet.cutters.ranges.LongRangeFacetCutter
boundaries, elementaryIntervals, pos, requestedRangeCount, singleValues, SKIP_INTERVAL_POSITION, sortedRanges, valuesSource
-
Constructor Summary
ConstructorsConstructorDescriptionOverlappingLongRangeFacetCutter
(MultiLongValuesSource longValuesSource, LongValuesSource singleLongValuesSource, LongRange[] longRanges) -
Method Summary
Modifier and TypeMethodDescription(package private) List
<LongRangeFacetCutter.InclusiveRange> TODO: it's identical to private OverlappingLongRangeCounter#buildElementaryIntervals, let's dedup.createLeafCutter
(LeafReaderContext context) Get cutter for the leaf.private static LongRangeNode
split
(int start, int end, List<LongRangeFacetCutter.InclusiveRange> elementaryIntervals) Methods inherited from class org.apache.lucene.sandbox.facet.cutters.ranges.LongRangeFacetCutter
create, createSingleOrMultiValued
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
getChildrenOrds, getOrdinalsToRollup
-
Field Details
-
root
-
-
Constructor Details
-
OverlappingLongRangeFacetCutter
OverlappingLongRangeFacetCutter(MultiLongValuesSource longValuesSource, LongValuesSource singleLongValuesSource, LongRange[] longRanges)
-
-
Method Details
-
buildElementaryIntervals
List<LongRangeFacetCutter.InclusiveRange> buildElementaryIntervals()TODO: it's identical to private OverlappingLongRangeCounter#buildElementaryIntervals, let's dedup.- Specified by:
buildElementaryIntervals
in classLongRangeFacetCutter
-
split
private static LongRangeNode split(int start, int end, List<LongRangeFacetCutter.InclusiveRange> elementaryIntervals) -
createLeafCutter
Description copied from interface:FacetCutter
Get cutter for the leaf.- Throws:
IOException
-