Package org.apache.lucene.facet.range
Class LongRangeFacetCounts
java.lang.Object
org.apache.lucene.facet.Facets
org.apache.lucene.facet.range.LongRangeFacetCounts
Facets
implementation that computes counts for dynamic long 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.).- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Field Summary
Modifier and TypeFieldDescriptionprotected final int[]
Counts, initialized in by subclass.protected final Query
Optional: if specified, we first test this Query to see whether the document should be checked for matching ranges.protected final String
Our field name.protected final Range[]
Ranges passed to constructor.protected int
Total number of hits. -
Constructor Summary
ConstructorDescriptionLongRangeFacetCounts
(String field, FacetsCollector hits, LongRange... ranges) CreateLongRangeFacetCounts
using long values from the specified field.LongRangeFacetCounts
(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, LongRange... ranges) CreateLongRangeFacetCounts
, using the providedMultiLongValuesSource
if non-null.LongRangeFacetCounts
(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges) CreateLongRangeFacetCounts
, using the providedMultiLongValuesSource
if non-null.LongRangeFacetCounts
(String field, LongValuesSource valueSource, FacetsCollector hits, LongRange... ranges) CreateLongRangeFacetCounts
, using the providedLongValuesSource
if non-null.LongRangeFacetCounts
(String field, LongValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges) CreateLongRangeFacetCounts
, using the providedLongValuesSource
if non-null. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
count
(String field, List<FacetsCollector.MatchingDocs> matchingDocs) Counts from the provided field.protected DocIdSetIterator
Create aDocIdSetIterator
from the providedhits
that relies onfastMatchQuery
if available for first-pass filtering.getAllDims
(int topN) Returns topN labels for any dimension that had hits, sorted by the number of hits that dimension matched; this is used for "sparse" faceting, where many different dimensions were indexed, for example depending on the type of document.protected LongRange[]
getSpecificValue
(String dim, String... path) Return the count or value for a specific path.getTopChildren
(int topN, String dim, String... path) Returns the topN child labels under the specified path.protected long
mapDocValue
(long l) toString()
-
Field Details
-
ranges
Ranges passed to constructor. -
counts
protected final int[] countsCounts, initialized in by subclass. -
fastMatchQuery
Optional: if specified, we first test this Query to see whether the document should be checked for matching ranges. If this is null, all documents are checked. -
field
Our field name. -
totCount
protected int totCountTotal number of hits.
-
-
Constructor Details
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, FacetsCollector hits, LongRange... ranges) throws IOException CreateLongRangeFacetCounts
using long values from the specified field. The field may be single-valued (NumericDocValues
) or multi-valued (SortedNumericDocValues
), and will be interpreted as containing long values.- Throws:
IOException
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, LongValuesSource valueSource, FacetsCollector hits, LongRange... ranges) throws IOException CreateLongRangeFacetCounts
, using the providedLongValuesSource
if non-null. IfvalueSource
is null, doc values from the providedfield
will be used.- Throws:
IOException
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, LongRange... ranges) throws IOException CreateLongRangeFacetCounts
, using the providedMultiLongValuesSource
if non-null. IfvaluesSource
is null, doc values from the providedfield
will be used.- Throws:
IOException
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, LongValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges) throws IOException CreateLongRangeFacetCounts
, using the providedLongValuesSource
if non-null. IfvalueSource
is null, doc values from the providedfield
will be used. Use the providedQuery
as a fastmatch: only documents passing the filter are checked for the matching ranges, which is helpful when the providedLongValuesSource
is costly per-document, such as a geo distance.- Throws:
IOException
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges) throws IOException CreateLongRangeFacetCounts
, using the providedMultiLongValuesSource
if non-null. IfvaluesSource
is null, doc values from the providedfield
will be used. Use the providedQuery
as a fastmatch: only documents passing the filter are checked for the matching ranges, which is helpful when the providedLongValuesSource
is costly per-document, such as a geo distance.- Throws:
IOException
-
-
Method Details
-
getLongRanges
-
createIterator
Create aDocIdSetIterator
from the providedhits
that relies onfastMatchQuery
if available for first-pass filtering. A null response indicates no documents will match.- Throws:
IOException
-
mapDocValue
protected long mapDocValue(long l) -
count
protected void count(String field, List<FacetsCollector.MatchingDocs> matchingDocs) throws IOException Counts from the provided field.- Throws:
IOException
-
getTopChildren
Description copied from class:Facets
Returns the topN child labels under the specified path. Returns null if the specified path doesn't exist or if this dimension was never seen.- Specified by:
getTopChildren
in classFacets
-
getSpecificValue
Description copied from class:Facets
Return the count or value for a specific path. Returns -1 if this path doesn't exist, else the count.- Specified by:
getSpecificValue
in classFacets
- Throws:
IOException
-
getAllDims
Description copied from class:Facets
Returns topN labels for any dimension that had hits, sorted by the number of hits that dimension matched; this is used for "sparse" faceting, where many different dimensions were indexed, for example depending on the type of document.- Specified by:
getAllDims
in classFacets
- Throws:
IOException
-
toString
-