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
-
public class LongRangeFacetCounts extends FacetCountsWithFilterQuery
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.protected StringfieldOur field name.protected Range[]rangesRanges passed to constructor.protected inttotCountTotal number of hits.-
Fields inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery
fastMatchQuery
-
-
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.FacetResultgetAllChildren(String dim, String... path)Returns all child labels with non-zero counts under the specified path.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)protected org.apache.lucene.facet.range.LongRangeCountersetupCounter()StringtoString()-
Methods inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery
createIterator
-
Methods inherited from class org.apache.lucene.facet.Facets
getTopDims, validateTopN
-
-
-
-
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()
-
mapDocValue
protected long mapDocValue(long l)
-
setupCounter
protected org.apache.lucene.facet.range.LongRangeCounter setupCounter()
-
count
protected void count(String field, List<FacetsCollector.MatchingDocs> matchingDocs) throws IOException
Counts from the provided field.- Throws:
IOException
-
getAllChildren
public FacetResult getAllChildren(String dim, String... path) throws IOException
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:
getAllChildrenin classFacets- Throws:
IOException
-
getTopChildren
public FacetResult getTopChildren(int topN, String dim, String... path) throws IOException
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- Throws:
IOException
-
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
-
-