Index: lucene/facet/src/java/org/apache/lucene/facet/search/DrillSideways.java =================================================================== --- lucene/facet/src/java/org/apache/lucene/facet/search/DrillSideways.java (revision 1486738) +++ lucene/facet/src/java/org/apache/lucene/facet/search/DrillSideways.java (working copy) @@ -410,8 +410,7 @@ doMaxScore, true); DrillSidewaysResult r = search(query, hitCollector, fsp); - r.hits = hitCollector.topDocs(); - return r; + return new DrillSidewaysResult(r.facetResults, hitCollector.topDocs()); } else { return search(after, query, topN, fsp); } @@ -425,8 +424,7 @@ DrillDownQuery query, int topN, FacetSearchParams fsp) throws IOException { TopScoreDocCollector hitCollector = TopScoreDocCollector.create(Math.min(topN, searcher.getIndexReader().maxDoc()), after, true); DrillSidewaysResult r = search(query, hitCollector, fsp); - r.hits = hitCollector.topDocs(); - return r; + return new DrillSidewaysResult(r.facetResults, hitCollector.topDocs()); } /** Override this to use a custom drill-down {@link @@ -454,16 +452,20 @@ return false; } - /** Represents the returned result from a drill sideways - * search. */ + /** + * Represents the returned result from a drill sideways search. Note that if + * you called + * {@link DrillSideways#search(DrillDownQuery, Collector, FacetSearchParams)}, + * then {@link #hits} will be {@code null}. + */ public static class DrillSidewaysResult { /** Combined drill down & sideways results. */ public final List facetResults; /** Hits. */ - public TopDocs hits; + public final TopDocs hits; - DrillSidewaysResult(List facetResults, TopDocs hits) { + public DrillSidewaysResult(List facetResults, TopDocs hits) { this.facetResults = facetResults; this.hits = hits; }