Package org.apache.lucene.facet.rangeonrange

## Class DoubleRangeOnRangeFacetCounts

- java.lang.Object
- - org.apache.lucene.facet.Facets
  - - org.apache.lucene.facet.FacetCountsWithFilterQuery
    - - org.apache.lucene.facet.rangeonrange.DoubleRangeOnRangeFacetCounts

-     public class DoubleRangeOnRangeFacetCounts
      extends FacetCountsWithFilterQuery

  Represents counts for double range on range faceting. To be more specific, this means that given a range (or list of ranges), this class will count all the documents in the index (or that match a fast match query) that contain ranges that "match" the provided ranges. These ranges are specified by the field parameter and expected to be of type `DoubleRangeDocValuesField`. Matching is defined by the queryType param, you can see the type of matching supported by looking at `RangeFieldQuery.QueryType`. In addition, this class supports multidimensional ranges. A multidimensional range will be counted as a match if every dimension matches the corresponding indexed range's dimension.

- - ### Field Summary

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

      `fastMatchQuery`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DoubleRangeOnRangeFacetCounts​(String field, FacetsCollector hits, RangeFieldQuery.QueryType queryType, DoubleRange... ranges)` | Constructor without the fast match query, see other constructor description for more details.
    `DoubleRangeOnRangeFacetCounts​(String field, FacetsCollector hits, RangeFieldQuery.QueryType queryType, Query fastMatchQuery, DoubleRange... ranges)` | Represents counts for double range on range faceting.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `count​(String field, List<FacetsCollector.MatchingDocs> matchingDocs, byte[][] encodedRanges, int numEncodedValueBytes, RangeFieldQuery.QueryType queryType)` | 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.
    `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.

    - ### 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, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DoubleRangeOnRangeFacetCounts

          public DoubleRangeOnRangeFacetCounts​(String field,
                                               FacetsCollector hits,
                                               RangeFieldQuery.QueryType queryType,
                                               DoubleRange... ranges)
                                        throws IOException

      Constructor without the fast match query, see other constructor description for more details.
      Throws:
        `IOException`

    - #### DoubleRangeOnRangeFacetCounts

          public DoubleRangeOnRangeFacetCounts​(String field,
                                               FacetsCollector hits,
                                               RangeFieldQuery.QueryType queryType,
                                               Query fastMatchQuery,
                                               DoubleRange... ranges)
                                        throws IOException

      Represents counts for double range on range faceting. See class javadoc for more details.
      Parameters:
        `field` - specifies a `DoubleRangeDocValuesField` that will define the indexed ranges
        `hits` - hits we want to count against
        `queryType` - type of intersection we want to count (IE: range intersection, range contains, etc.)
        `fastMatchQuery` - query to quickly discard hits using some heuristic
        `ranges` - ranges we want the counts of
      Throws:
        `IOException` - low level exception

  - ### Method Detail

    - #### count

          protected void count​(String field,
                               List<FacetsCollector.MatchingDocs> matchingDocs,
                               byte[][] encodedRanges,
                               int numEncodedValueBytes,
                               RangeFieldQuery.QueryType queryType)
                        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`