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, totCount
Fields 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 providedMultiDoubleValuesSource
if non-null.DoubleRangeFacetCounts
(String field, MultiDoubleValuesSource valuesSource, FacetsCollector hits, Query fastMatchQuery, DoubleRange... ranges) CreateRangeFacetCounts
, using the providedMultiDoubleValuesSource
if non-null.DoubleRangeFacetCounts
(String field, DoubleValuesSource valueSource, FacetsCollector hits, DoubleRange... ranges) CreateRangeFacetCounts
, using the providedDoubleValuesSource
if non-null.DoubleRangeFacetCounts
(String field, DoubleValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, DoubleRange... ranges) CreateRangeFacetCounts
, using the providedDoubleValuesSource
if non-null. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
count
(MultiDoubleValuesSource valueSource, List<FacetsCollector.MatchingDocs> matchingDocs) Counts from the provided valueSource.private void
count
(DoubleValuesSource valueSource, List<FacetsCollector.MatchingDocs> matchingDocs) Counts from the provided valueSource.protected LongRange[]
Create long ranges from the double ranges.protected long
mapDocValue
(long l) Methods inherited from class org.apache.lucene.facet.range.RangeFacetCounts
count, getAllChildren, getAllDims, getSpecificValue, getTopChildren, setupCounter, toString
Methods inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery
createIterator
Methods 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 providedDoubleValuesSource
if non-null. IfvalueSource
is null, doc values from the providedfield
will 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 providedMultiDoubleValuesSource
if non-null. IfvaluesSource
is null, doc values from the providedfield
will 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 providedDoubleValuesSource
if non-null. IfvalueSource
is null, doc values from the providedfield
will be used. Use the providedQuery
as 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 providedMultiDoubleValuesSource
if non-null. IfvaluesSource
is null, doc values from the providedfield
will be used. Use the providedQuery
as 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:
getLongRanges
in classRangeFacetCounts
-
mapDocValue
protected long mapDocValue(long l) - Overrides:
mapDocValue
in classRangeFacetCounts
-