org.apache.lucene.facet.search

## Class DrillSideways

- java.lang.Object
- - org.apache.lucene.facet.search.DrillSideways

-     public class DrillSideways
      extends Object

  Computes drill down and sideways counts for the provided `DrillDownQuery`. Drill sideways counts include alternative values/aggregates for the drill-down dimensions so that a dimension does not disappear after the user drills down into it.

  Use one of the static search methods to do the search, and then get the hits and facet results from the returned `DrillSideways.DrillSidewaysResult`.

  NOTE: this allocates one `FacetsCollector` for each drill-down, plus one. If your index has high number of facet labels then this will multiply your memory usage.

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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `DrillSideways.DrillSidewaysResult` Represents the returned result from a drill sideways search.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected IndexSearcher` | `searcher`
    `protected TaxonomyReader` | `taxoReader`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DrillSideways(IndexSearcher searcher, TaxonomyReader taxoReader)` Create a new `DrillSideways` instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected FacetsAccumulator` | `getDrillDownAccumulator(FacetSearchParams fsp)` Override this to use a custom drill-down `FacetsAccumulator`.
    `protected FacetsAccumulator` | `getDrillSidewaysAccumulator(String dim, FacetSearchParams fsp)` Override this to use a custom drill-sideways `FacetsAccumulator`.
    `DrillSideways.DrillSidewaysResult` | `search(DrillDownQuery query, Collector hitCollector, FacetSearchParams fsp)` Search, collecting hits with a `Collector`, and computing drill down and sideways counts.
    `DrillSideways.DrillSidewaysResult` | `search(DrillDownQuery query, Filter filter, FieldDoc after, int topN, Sort sort, boolean doDocScores, boolean doMaxScore, FacetSearchParams fsp)` Search, sorting by `Sort`, and computing drill down and sideways counts.
    `DrillSideways.DrillSidewaysResult` | `search(ScoreDoc after, DrillDownQuery query, int topN, FacetSearchParams fsp)` Search, sorting by score, and computing drill down and sideways counts.

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

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

- - ### Field Detail

    - #### searcher

          protected final IndexSearcher searcher

    - #### taxoReader

          protected final TaxonomyReader taxoReader

  - ### Constructor Detail

    - #### DrillSideways

          public DrillSideways(IndexSearcher searcher,
                       TaxonomyReader taxoReader)

      Create a new `DrillSideways` instance.

  - ### Method Detail

    - #### search

          public DrillSideways.DrillSidewaysResult search(DrillDownQuery query,
                                                 Collector hitCollector,
                                                 FacetSearchParams fsp)
                                                   throws IOException

      Search, collecting hits with a `Collector`, and computing drill down and sideways counts.
      Throws:
        `IOException`

    - #### search

          public DrillSideways.DrillSidewaysResult search(DrillDownQuery query,
                                                 Filter filter,
                                                 FieldDoc after,
                                                 int topN,
                                                 Sort sort,
                                                 boolean doDocScores,
                                                 boolean doMaxScore,
                                                 FacetSearchParams fsp)
                                                   throws IOException

      Search, sorting by `Sort`, and computing drill down and sideways counts.
      Throws:
        `IOException`

    - #### search

          public DrillSideways.DrillSidewaysResult search(ScoreDoc after,
                                                 DrillDownQuery query,
                                                 int topN,
                                                 FacetSearchParams fsp)
                                                   throws IOException

      Search, sorting by score, and computing drill down and sideways counts.
      Throws:
        `IOException`

    - #### getDrillDownAccumulator

          protected FacetsAccumulator getDrillDownAccumulator(FacetSearchParams fsp)

      Override this to use a custom drill-down `FacetsAccumulator`.

    - #### getDrillSidewaysAccumulator

          protected FacetsAccumulator getDrillSidewaysAccumulator(String dim,
                                                      FacetSearchParams fsp)

      Override this to use a custom drill-sideways `FacetsAccumulator`.

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.