public class LongRangeFacetCounts extends Facets
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.).Modifier and Type | Field and Description |
---|---|
protected int[] |
counts
Counts, initialized in by subclass.
|
protected Query |
fastMatchQuery
Optional: if specified, we first test this Query to
see whether the document should be checked for
matching ranges.
|
protected String |
field
Our field name.
|
protected Range[] |
ranges
Ranges passed to constructor.
|
protected int |
totCount
Total number of hits.
|
Constructor and Description |
---|
LongRangeFacetCounts(String field,
FacetsCollector hits,
LongRange... ranges)
Create
LongRangeFacetCounts using long values from the specified field. |
LongRangeFacetCounts(String field,
LongValuesSource valueSource,
FacetsCollector hits,
LongRange... ranges)
Create
LongRangeFacetCounts , using the provided LongValuesSource if non-null. |
LongRangeFacetCounts(String field,
LongValuesSource valueSource,
FacetsCollector hits,
Query fastMatchQuery,
LongRange... ranges)
Create
LongRangeFacetCounts , using the provided LongValuesSource if non-null. |
Modifier and Type | Method and Description |
---|---|
protected void |
count(String field,
List<FacetsCollector.MatchingDocs> matchingDocs)
Counts from the provided field.
|
protected DocIdSetIterator |
createIterator(FacetsCollector.MatchingDocs hits)
Create a
DocIdSetIterator from the provided hits that
relies on fastMatchQuery if available for first-pass filtering. |
List<FacetResult> |
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[] |
getLongRanges()
Provide the requested long ranges for counting.
|
Number |
getSpecificValue(String dim,
String... path)
Return the count or value
for a specific path.
|
FacetResult |
getTopChildren(int topN,
String dim,
String... path)
Returns the topN child labels under the specified
path.
|
protected long |
mapDocValue(long l)
Allow sub-classes to (optionally) map from the stored long bits to a long that should be
used for the actual counting.
|
String |
toString() |
protected final Range[] ranges
protected final int[] counts
protected final Query fastMatchQuery
protected final String field
protected int totCount
public LongRangeFacetCounts(String field, FacetsCollector hits, LongRange... ranges) throws IOException
LongRangeFacetCounts
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.IOException
public LongRangeFacetCounts(String field, LongValuesSource valueSource, FacetsCollector hits, LongRange... ranges) throws IOException
LongRangeFacetCounts
, using the provided LongValuesSource
if non-null.
If valueSource
is null, doc values from the provided field
will be used.IOException
public LongRangeFacetCounts(String field, LongValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges) throws IOException
LongRangeFacetCounts
, using the provided LongValuesSource
if non-null.
If valueSource
is null, doc values from the provided field
will be used. Use
the provided Query
as a fastmatch: only documents passing the filter are checked for
the matching ranges, which is helpful when the provided LongValuesSource
is costly
per-document, such as a geo distance.IOException
protected LongRange[] getLongRanges()
protected DocIdSetIterator createIterator(FacetsCollector.MatchingDocs hits) throws IOException
DocIdSetIterator
from the provided hits
that
relies on fastMatchQuery
if available for first-pass filtering. A null response
indicates no documents will match.IOException
protected long mapDocValue(long l)
protected void count(String field, List<FacetsCollector.MatchingDocs> matchingDocs) throws IOException
IOException
public FacetResult getTopChildren(int topN, String dim, String... path)
Facets
getTopChildren
in class Facets
public Number getSpecificValue(String dim, String... path) throws IOException
Facets
getSpecificValue
in class Facets
IOException
public List<FacetResult> getAllDims(int topN) throws IOException
Facets
getAllDims
in class Facets
IOException
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.