Facets implementation that computes counts for dynamic double ranges. Use this for
dimensions that change in real-time (e.g. a relative time based dimension like "Past day", "Past
2 days", etc.) or that change for each request (e.g. distance from the user's location, "< 1
km", "< 2 km", etc.).
If you have indexed your field using FloatDocValuesField, then you should use a
DoubleValuesSource generated from DoubleValuesSource.fromFloatField(String).
-
Field Summary
Fields inherited from class org.apache.lucene.facet.range.RangeFacetCounts
counts, field, ranges, totCountFields inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery
fastMatchQuery -
Constructor Summary
ConstructorsConstructorDescriptionDoubleRangeFacetCounts(String field, FacetsCollector hits, DoubleRange... ranges) CreateRangeFacetCounts, using double value from the specified field.DoubleRangeFacetCounts(String field, MultiDoubleValuesSource valuesSource, FacetsCollector hits, DoubleRange... ranges) CreateRangeFacetCounts, using the providedMultiDoubleValuesSourceif non-null.DoubleRangeFacetCounts(String field, MultiDoubleValuesSource valuesSource, FacetsCollector hits, Query fastMatchQuery, DoubleRange... ranges) CreateRangeFacetCounts, using the providedMultiDoubleValuesSourceif non-null.DoubleRangeFacetCounts(String field, DoubleValuesSource valueSource, FacetsCollector hits, DoubleRange... ranges) CreateRangeFacetCounts, using the providedDoubleValuesSourceif non-null.DoubleRangeFacetCounts(String field, DoubleValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, DoubleRange... ranges) CreateRangeFacetCounts, using the providedDoubleValuesSourceif non-null. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidcount(MultiDoubleValuesSource valueSource, List<FacetsCollector.MatchingDocs> matchingDocs) Counts from the provided valueSource.private voidcount(DoubleValuesSource valueSource, List<FacetsCollector.MatchingDocs> matchingDocs) Counts from the provided valueSource.protected LongRange[]Create long ranges from the double ranges.protected longmapDocValue(long l) Methods inherited from class org.apache.lucene.facet.range.RangeFacetCounts
count, getAllChildren, getAllDims, getSpecificValue, getTopChildren, setupCounter, toStringMethods inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery
createIteratorMethods inherited from class org.apache.lucene.facet.Facets
getTopDims, validateTopN
-
Constructor Details
-
DoubleRangeFacetCounts
public DoubleRangeFacetCounts(String field, FacetsCollector hits, DoubleRange... ranges) throws IOException CreateRangeFacetCounts, using double value from the specified field. The field may be single-valued (NumericDocValues) or multi-valued (SortedNumericDocValues), and will be interpreted as containing double values.N.B This assumes that the field was indexed with
DoubleDocValuesField. For float-valued fields, useDoubleRangeFacetCounts(String, DoubleValuesSource, FacetsCollector, DoubleRange...)orDoubleRangeFacetCounts(String, MultiDoubleValuesSource, FacetsCollector, DoubleRange...)TODO: Extend multi-valued support to fields that have been indexed as float values
- Throws:
IOException
-
DoubleRangeFacetCounts
public DoubleRangeFacetCounts(String field, DoubleValuesSource valueSource, FacetsCollector hits, DoubleRange... ranges) throws IOException CreateRangeFacetCounts, using the providedDoubleValuesSourceif non-null. IfvalueSourceis null, doc values from the providedfieldwill be used.N.B If relying on the provided
field, see javadoc notes associated withDoubleRangeFacetCounts(String, FacetsCollector, DoubleRange...)for assumptions on how the field is indexed.- Throws:
IOException
-
DoubleRangeFacetCounts
public DoubleRangeFacetCounts(String field, MultiDoubleValuesSource valuesSource, FacetsCollector hits, DoubleRange... ranges) throws IOException CreateRangeFacetCounts, using the providedMultiDoubleValuesSourceif non-null. IfvaluesSourceis null, doc values from the providedfieldwill be used.N.B If relying on the provided
field, see javadoc notes associated withDoubleRangeFacetCounts(String, FacetsCollector, DoubleRange...)for assumptions on how the field is indexed.- Throws:
IOException
-
DoubleRangeFacetCounts
public DoubleRangeFacetCounts(String field, DoubleValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, DoubleRange... ranges) throws IOException CreateRangeFacetCounts, using the providedDoubleValuesSourceif non-null. IfvalueSourceis null, doc values from the providedfieldwill be used. Use the providedQueryas a fastmatch: only documents matching the query are checked for the matching ranges.N.B If relying on the provided
field, see javadoc notes associated withDoubleRangeFacetCounts(String, FacetsCollector, DoubleRange...)for assumptions on how the field is indexed.- Throws:
IOException
-
DoubleRangeFacetCounts
public DoubleRangeFacetCounts(String field, MultiDoubleValuesSource valuesSource, FacetsCollector hits, Query fastMatchQuery, DoubleRange... ranges) throws IOException CreateRangeFacetCounts, using the providedMultiDoubleValuesSourceif non-null. IfvaluesSourceis null, doc values from the providedfieldwill be used. Use the providedQueryas a fastmatch: only documents matching the query are checked for the matching ranges.N.B If relying on the provided
field, see javadoc notes associated withDoubleRangeFacetCounts(String, FacetsCollector, DoubleRange...)for assumptions on how the field is indexed.- Throws:
IOException
-
-
Method Details
-
count
private void count(DoubleValuesSource valueSource, List<FacetsCollector.MatchingDocs> matchingDocs) throws IOException Counts from the provided valueSource.- Throws:
IOException
-
count
private void count(MultiDoubleValuesSource valueSource, List<FacetsCollector.MatchingDocs> matchingDocs) throws IOException Counts from the provided valueSource.- Throws:
IOException
-
getLongRanges
Create long ranges from the double ranges.- Specified by:
getLongRangesin classRangeFacetCounts
-
mapDocValue
protected long mapDocValue(long l) - Overrides:
mapDocValuein classRangeFacetCounts
-