org.apache.lucene.facet.range

## Class DoubleRangeFacetCounts

- java.lang.Object
- - org.apache.lucene.facet.Facets
  - - org.apache.lucene.facet.range.DoubleRangeFacetCounts

    public class DoubleRangeFacetCounts
    extends Facets

`Facets` implementation that computes counts for dynamic double ranges from a provided `DoubleValuesSource`. 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.). If you have indexed your field using `FloatDocValuesField`, then you should use a DoubleValuesSource generated from `DoubleValuesSource.fromFloatField(String)`.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Field Summary

Fields
`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 Summary

Constructors
Constructor and Description
`DoubleRangeFacetCounts(String field, DoubleValuesSource valueSource, FacetsCollector hits, DoubleRange... ranges)` Create `RangeFacetCounts` using the provided `DoubleValuesSource`
`DoubleRangeFacetCounts(String field, DoubleValuesSource valueSource, FacetsCollector hits, Query fastMatchQuery, DoubleRange... ranges)` Create `RangeFacetCounts`, using the provided `DoubleValuesSource`, and using the provided Query as a fastmatch: only documents matching the query are checked for the matching ranges.
`DoubleRangeFacetCounts(String field, FacetsCollector hits, DoubleRange... ranges)` Create `RangeFacetCounts`, using `DoubleValues` from the specified field.

### Method Summary

All Methods Instance Methods Concrete Methods
`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.
`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.
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### 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

#### DoubleRangeFacetCounts

    public DoubleRangeFacetCounts(String field,
                                  FacetsCollector hits,
                                  DoubleRange... ranges)
                           throws IOException

Create `RangeFacetCounts`, using `DoubleValues` from the specified field. N.B This assumes that the field was indexed with `DoubleDocValuesField`. For float-valued fields, use `DoubleRangeFacetCounts(String, DoubleValuesSource, FacetsCollector, DoubleRange...)`

Throws:
  `IOException`

#### DoubleRangeFacetCounts

    public DoubleRangeFacetCounts(String field,
                                  DoubleValuesSource valueSource,
                                  FacetsCollector hits,
                                  DoubleRange... ranges)
                           throws IOException

Create `RangeFacetCounts` using the provided `DoubleValuesSource`

Throws:
  `IOException`

#### DoubleRangeFacetCounts

    public DoubleRangeFacetCounts(String field,
                                  DoubleValuesSource valueSource,
                                  FacetsCollector hits,
                                  Query fastMatchQuery,
                                  DoubleRange... ranges)
                           throws IOException

Create `RangeFacetCounts`, using the provided `DoubleValuesSource`, and using the provided Query as a fastmatch: only documents matching the query are checked for the matching ranges.

Throws:
  `IOException`

### Method Detail

#### getTopChildren

    public FacetResult getTopChildren(int topN,
                                      String dim,
                                      String... path)

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 class `Facets`

#### getSpecificValue

    public Number getSpecificValue(String dim,
                                   String... path)
                            throws IOException

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 class `Facets`
Throws:
  `IOException`

#### getAllDims

    public List<FacetResult> getAllDims(int topN)
                                 throws IOException

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 class `Facets`
Throws:
  `IOException`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`