## 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
`static class` `DrillSideways.DrillSidewaysResult` Represents the returned result from a drill sideways search.

Field Summary
`protected IndexSearcher` `searcher`
`protected TaxonomyReader` `taxoReader`

Constructor Summary
`DrillSideways(IndexSearcher searcher, TaxonomyReader taxoReader)` Create a new `DrillSideways` instance.

Method Summary
`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.