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

  `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

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int[]` | `counts` | Counts, initialized in by subclass.
    `protected String` | `field` | Our field name.
    `protected Range[]` | `ranges` | Ranges passed to constructor.
    `protected int` | `totCount` | Total 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)` | Create `LongRangeFacetCounts` using long values from the specified field.
    `LongRangeFacetCounts​(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, LongRange... ranges)` | Create `LongRangeFacetCounts`, using the provided `MultiLongValuesSource` if non-null.
    `LongRangeFacetCounts​(String field, MultiLongValuesSource valuesSource, FacetsCollector hits, Query fastMatchQuery, LongRange... ranges)` | Create `LongRangeFacetCounts`, using the provided `MultiLongValuesSource` if non-null.
    `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.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `count​(String field, List<FacetsCollector.MatchingDocs> matchingDocs)` | Counts from the provided field.
    `FacetResult` | `getAllChildren​(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()` |
    `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)` |
    `String` | `toString()` |

    - ### Methods inherited from class org.apache.lucene.facet.FacetCountsWithFilterQuery

      `createIterator`

    - ### Methods inherited from class org.apache.lucene.facet.Facets

      `getTopDims, validateTopN`

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

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

      Create `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.
      Throws:
        `IOException`

    - #### LongRangeFacetCounts

          public LongRangeFacetCounts​(String field,
                                      LongValuesSource valueSource,
                                      FacetsCollector hits,
                                      LongRange... ranges)
                               throws IOException

      Create `LongRangeFacetCounts`, using the provided `LongValuesSource` if non-null. If `valueSource` is null, doc values from the provided `field` will be used.
      Throws:
        `IOException`

    - #### LongRangeFacetCounts

          public LongRangeFacetCounts​(String field,
                                      MultiLongValuesSource valuesSource,
                                      FacetsCollector hits,
                                      LongRange... ranges)
                               throws IOException

      Create `LongRangeFacetCounts`, using the provided `MultiLongValuesSource` if non-null. If `valuesSource` is null, doc values from the provided `field` will be used.
      Throws:
        `IOException`

    - #### LongRangeFacetCounts

          public LongRangeFacetCounts​(String field,
                                      LongValuesSource valueSource,
                                      FacetsCollector hits,
                                      Query fastMatchQuery,
                                      LongRange... ranges)
                               throws IOException

      Create `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.
      Throws:
        `IOException`

    - #### LongRangeFacetCounts

          public LongRangeFacetCounts​(String field,
                                      MultiLongValuesSource valuesSource,
                                      FacetsCollector hits,
                                      Query fastMatchQuery,
                                      LongRange... ranges)
                               throws IOException

      Create `LongRangeFacetCounts`, using the provided `MultiLongValuesSource` if non-null. If `valuesSource` 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.
      Throws:
        `IOException`

  - ### Method Detail

    - #### getLongRanges

          protected LongRange[] 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

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

    - #### getTopChildren

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

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

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