Package org.apache.lucene.facet.range
Class LongRangeFacetCounts
- java.lang.Object
-
- org.apache.lucene.facet.Facets
-
- org.apache.lucene.facet.range.LongRangeFacetCounts
-
public class LongRangeFacetCounts extends Facets
Facetsimplementation 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
Fields Modifier and Type Field Description protected int[]countsCounts, initialized in by subclass.protected QueryfastMatchQueryOptional: if specified, we first test this Query to see whether the document should be checked for matching ranges.protected StringfieldOur field name.protected Range[]rangesRanges passed to constructor.protected inttotCountTotal number of hits.
-
Constructor Summary
Constructors Constructor Description LongRangeFacetCounts(String field, FacetsCollector hits, LongRange... ranges)CreateLongRangeFacetCountsusing long values from the specified field.LongRangeFacetCounts(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, LongRange... ranges)CreateLongRangeFacetCounts, using the providedMultiLongValuesSourceif non-null.LongRangeFacetCounts(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges)CreateLongRangeFacetCounts, using the providedMultiLongValuesSourceif non-null.LongRangeFacetCounts(String field, LongValuesSource valueSource, FacetsCollector hits, LongRange... ranges)CreateLongRangeFacetCounts, using the providedLongValuesSourceif non-null.LongRangeFacetCounts(String field, LongValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges)CreateLongRangeFacetCounts, using the providedLongValuesSourceif non-null.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcount(String field, List<FacetsCollector.MatchingDocs> matchingDocs)Counts from the provided field.protected DocIdSetIteratorcreateIterator(FacetsCollector.MatchingDocs hits)Create aDocIdSetIteratorfrom the providedhitsthat relies onfastMatchQueryif 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()NumbergetSpecificValue(String dim, String... path)Return the count or value for a specific path.FacetResultgetTopChildren(int topN, String dim, String... path)Returns the topN child labels under the specified path.protected longmapDocValue(long l)StringtoString()-
Methods inherited from class org.apache.lucene.facet.Facets
getTopDims, validateTopN
-
-
-
-
Field Detail
-
ranges
protected final Range[] ranges
Ranges passed to constructor.
-
counts
protected final int[] counts
Counts, initialized in by subclass.
-
fastMatchQuery
protected final Query 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
protected final String field
Our field name.
-
totCount
protected int totCount
Total number of hits.
-
-
Constructor Detail
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, FacetsCollector hits, LongRange... ranges) throws IOException
CreateLongRangeFacetCountsusing 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 providedLongValuesSourceif non-null. IfvalueSourceis null, doc values from the providedfieldwill be used.- Throws:
IOException
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, LongRange... ranges) throws IOException
CreateLongRangeFacetCounts, using the providedMultiLongValuesSourceif non-null. IfvaluesSourceis null, doc values from the providedfieldwill be used.- Throws:
IOException
-
LongRangeFacetCounts
public LongRangeFacetCounts(String field, LongValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges) throws IOException
CreateLongRangeFacetCounts, using the providedLongValuesSourceif non-null. IfvalueSourceis null, doc values from the providedfieldwill be used. Use the providedQueryas a fastmatch: only documents passing the filter are checked for the matching ranges, which is helpful when the providedLongValuesSourceis 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 providedMultiLongValuesSourceif non-null. IfvaluesSourceis null, doc values from the providedfieldwill be used. Use the providedQueryas a fastmatch: only documents passing the filter are checked for the matching ranges, which is helpful when the providedLongValuesSourceis costly per-document, such as a geo distance.- Throws:
IOException
-
-
Method Detail
-
getLongRanges
protected LongRange[] getLongRanges()
-
createIterator
protected DocIdSetIterator createIterator(FacetsCollector.MatchingDocs hits) throws IOException
Create aDocIdSetIteratorfrom the providedhitsthat relies onfastMatchQueryif 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
public FacetResult getTopChildren(int topN, String dim, String... path)
Description copied from class:FacetsReturns 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:
getTopChildrenin classFacets
-
getSpecificValue
public Number getSpecificValue(String dim, String... path) throws IOException
Description copied from class:FacetsReturn the count or value for a specific path. Returns -1 if this path doesn't exist, else the count.- Specified by:
getSpecificValuein classFacets- Throws:
IOException
-
getAllDims
public List<FacetResult> getAllDims(int topN) throws IOException
Description copied from class:FacetsReturns 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:
getAllDimsin classFacets- Throws:
IOException
-
-