Package org.apache.lucene.facet.range
Class LongRangeFacetCounts
java.lang.Object
org.apache.lucene.facet.Facets
org.apache.lucene.facet.FacetCountsWithFilterQuery
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 String
Our field name.protected final Range[]
Ranges passed to constructor.protected int
Total number of hits.Fields inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery
fastMatchQuery
-
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.getAllChildren
(String dim, String... path) Returns all child labels with non-zero counts under the specified path.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()
Methods inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery
createIterator
Methods inherited from class org.apache.lucene.facet.Facets
getTopDims, validateTopN
-
Field Details
-
ranges
Ranges passed to constructor. -
counts
protected final int[] countsCounts, initialized in by subclass. -
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
-
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
-
getAllChildren
Returns all child labels with non-zero counts under the specified path. Users should make no assumptions about ordering of the children. Returns null if the specified path doesn't exist or if this dimension was never seen.NOTE: This implementation guarantees that ranges will be returned in the order specified by the user when calling the constructor.
- Specified by:
getAllChildren
in classFacets
- 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
- Throws:
IOException
-
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
-