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

    There is both a "standard" and "concurrent" implementation for drill sideways. The concurrent approach is enabled by providing an ExecutorService to the ctor. The concurrent implementation may be a little faster but does duplicate work (which grows linearly with the number of drill down dimensions specified on the provided DrillDownQuery). The duplicate work may impact the overall throughput of a system. The standard approach may be a little slower but avoids duplicate computations and query processing. Note that both approaches are compatible with concurrent searching across segments (i.e., if using an IndexSearcher constructed with an Executor).

    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.