You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2013/01/21 17:11:31 UTC

svn commit: r1436446 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/facet/ lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/ lucene/facet/src/examples/org/apache/lucene/facet/example/simple/ lucene/facet/src/java/org/apache/luc...

Author: shaie
Date: Mon Jan 21 16:11:30 2013
New Revision: 1436446

URL: http://svn.apache.org/viewvc?rev=1436446&view=rev
Log:
LUCENE-4600: add CountingFacetsCollector

Added:
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/CountingFacetsCollector.java
      - copied unchanged from r1436435, lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/search/CountingFacetsCollector.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/StandardFacetsCollector.java
      - copied unchanged from r1436435, lucene/dev/trunk/lucene/facet/src/java/org/apache/lucene/facet/search/StandardFacetsCollector.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/CountingFacetsCollectorTest.java
      - copied unchanged from r1436435, lucene/dev/trunk/lucene/facet/src/test/org/apache/lucene/facet/search/CountingFacetsCollectorTest.java
Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_4x/lucene/facet/   (props changed)
    lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLSearcher.java
    lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleSearcher.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/index/params/FacetIndexingParams.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/DrillDown.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsAccumulator.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsCollector.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/StandardFacetsAccumulator.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/TotalFacetCounts.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/params/FacetSearchParams.java
    lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/sampling/Sampler.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/OrdinalMappingReaderTest.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/TestFacetsPayloadMigrationReader.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/SamplingWrapperTest.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestSameRequestAccumulation.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestStandardFacetsAccumulator.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandlerRandom.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/associations/AssociationsFacetRequestTest.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java
    lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/OversampleWithDepthTest.java

Modified: lucene/dev/branches/branch_4x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/CHANGES.txt?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/lucene/CHANGES.txt Mon Jan 21 16:11:30 2013
@@ -17,6 +17,12 @@ Changes in backwards compatibility polic
 * LUCENE-4697: FacetResultNode is now a concrete class with public members
   (instead of getter methods). (Shai Erera)
   
+* LUCENE-4600: FacetsCollector is now an abstract class with two
+  implementations: StandardFacetsCollector (the old version of 
+  FacetsCollector) and CountingFacetsCollector. FacetsCollector.create()
+  returns the most optimized collector for the given parameters.
+  (Shai Erera, Michael McCandless)
+
 Optimizations
 
 * LUCENE-4687: BloomFilterPostingsFormat now lazily initializes delegate

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLSearcher.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLSearcher.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/multiCL/MultiCLSearcher.java Mon Jan 21 16:11:30 2013
@@ -109,8 +109,7 @@ public class MultiCLSearcher {
     // behavior - in those
     // situations other, more low-level interfaces are available, as
     // demonstrated in other search examples.
-    FacetsCollector facetsCollector = new FacetsCollector(
-        facetSearchParams, indexReader, taxo);
+    FacetsCollector facetsCollector = FacetsCollector.create(facetSearchParams, indexReader, taxo);
 
     // perform documents search and facets accumulation
     searcher.search(q, MultiCollector.wrap(topDocsCollector, facetsCollector));

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleSearcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleSearcher.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleSearcher.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/examples/org/apache/lucene/facet/example/simple/SimpleSearcher.java Mon Jan 21 16:11:30 2013
@@ -104,9 +104,9 @@ public class SimpleSearcher {
     }
     
     // Faceted search parameters indicate which facets are we interested in
-    FacetSearchParams facetSearchParams = new FacetSearchParams(Arrays.asList(facetRequests), indexingParams);
+    FacetSearchParams facetSearchParams = new FacetSearchParams(indexingParams, facetRequests);
 
-    FacetsCollector facetsCollector = new FacetsCollector(facetSearchParams, indexReader, taxoReader);
+    FacetsCollector facetsCollector = FacetsCollector.create(facetSearchParams, indexReader, taxoReader);
 
     // perform documents search and facets accumulation
     searcher.search(q, MultiCollector.wrap(topDocsCollector, facetsCollector));

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/index/params/FacetIndexingParams.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/index/params/FacetIndexingParams.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/index/params/FacetIndexingParams.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/index/params/FacetIndexingParams.java Mon Jan 21 16:11:30 2013
@@ -48,7 +48,7 @@ public class FacetIndexingParams {
 
   /**
    * A {@link FacetIndexingParams} which fixes {@link OrdinalPolicy} to
-   * {@link OrdinalPolicy#NO_PARENTS}. This is a singleton equivalent to new
+   * {@link OrdinalPolicy#ALL_PARENTS}. This is a singleton equivalent to new
    * {@link #FacetIndexingParams()}.
    */
   public static final FacetIndexingParams ALL_PARENTS = new FacetIndexingParams();

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/DrillDown.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/DrillDown.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/DrillDown.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/DrillDown.java Mon Jan 21 16:11:30 2013
@@ -47,7 +47,7 @@ public final class DrillDown {
    * @see #term(FacetIndexingParams, CategoryPath)
    */
   public static final Term term(FacetSearchParams sParams, CategoryPath path) {
-    return term(sParams.getFacetIndexingParams(), path);
+    return term(sParams.indexingParams, path);
   }
 
   /** Return a drill-down {@link Term} for a category. */
@@ -103,7 +103,7 @@ public final class DrillDown {
    * @see #query(FacetIndexingParams, Query, CategoryPath...)
    */
   public static final Query query(FacetSearchParams sParams, Query baseQuery, CategoryPath... paths) {
-    return query(sParams.getFacetIndexingParams(), baseQuery, paths);
+    return query(sParams.indexingParams, baseQuery, paths);
   }
 
 }

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsAccumulator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsAccumulator.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsAccumulator.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsAccumulator.java Mon Jan 21 16:11:30 2013
@@ -138,7 +138,7 @@ public abstract class FacetsAccumulator 
 
   /** check if all requests are complementable */
   protected boolean mayComplement() {
-    for (FacetRequest freq:searchParams.getFacetRequests()) {
+    for (FacetRequest freq:searchParams.facetRequests) {
       if (!freq.supportsComplements()) {
         return false;
       }

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsCollector.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsCollector.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/FacetsCollector.java Mon Jan 21 16:11:30 2013
@@ -3,15 +3,13 @@ package org.apache.lucene.facet.search;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.lucene.index.AtomicReaderContext;
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.search.Collector;
-import org.apache.lucene.search.Scorer;
-
 import org.apache.lucene.facet.search.params.FacetRequest;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.search.results.FacetResult;
+import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.search.Collector;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,109 +29,35 @@ import org.apache.lucene.facet.taxonomy.
  */
 
 /**
- * Collector for facet accumulation. *
+ * A {@link Collector} which executes faceted search and computes the weight of
+ * requested facets. To get the facet results you should call
+ * {@link #getFacetResults()}.
+ * {@link #create(FacetSearchParams, IndexReader, TaxonomyReader)} returns the
+ * most optimized {@link FacetsCollector} for the given parameters.
  * 
  * @lucene.experimental
  */
-public class FacetsCollector extends Collector {
-
-  protected final FacetsAccumulator facetsAccumulator;
-  private ScoredDocIdCollector scoreDocIdCollector;
-  private List<FacetResult> results;
-  private Object resultsGuard;
-
+public abstract class FacetsCollector extends Collector {
+  
   /**
-   * Create a collector for accumulating facets while collecting documents
-   * during search.
-   * 
-   * @param facetSearchParams
-   *          faceted search parameters defining which facets are required and
-   *          how.
-   * @param indexReader
-   *          searched index.
-   * @param taxonomyReader
-   *          taxonomy containing the facets.
+   * Returns the most optimized {@link FacetsCollector} for the given search
+   * parameters. The returned {@link FacetsCollector} is guaranteed to satisfy
+   * the requested parameters.
    */
-  public FacetsCollector(FacetSearchParams facetSearchParams,
-                          IndexReader indexReader, TaxonomyReader taxonomyReader) {
-    facetsAccumulator = initFacetsAccumulator(facetSearchParams, indexReader, taxonomyReader);
-    scoreDocIdCollector = initScoredDocCollector(facetSearchParams, indexReader, taxonomyReader);
-    resultsGuard = new Object();
-  }
-
-  /**
-   * Create a {@link ScoredDocIdCollector} to be used as the first phase of
-   * the facet collection. If all facetRequests are do not require the
-   * document score, a ScoredDocIdCollector which does not store the document
-   * scores would be returned. Otherwise a SDIC which does store the documents
-   * will be returned, having an initial allocated space for 1000 such
-   * documents' scores.
-   */
-  protected ScoredDocIdCollector initScoredDocCollector(
-      FacetSearchParams facetSearchParams, IndexReader indexReader,
-      TaxonomyReader taxonomyReader) {
-    boolean scoresNeeded = false;
-    for (FacetRequest frq : facetSearchParams.getFacetRequests()) {
-      if (frq.requireDocumentScore()) {
-        scoresNeeded = true;
-        break;
-      }
+  public static FacetsCollector create(FacetSearchParams fsp, IndexReader indexReader, TaxonomyReader taxoReader) {
+    if (CountingFacetsCollector.assertParams(fsp) == null) {
+      return new CountingFacetsCollector(fsp, taxoReader);
     }
-    return ScoredDocIdCollector.create(indexReader.maxDoc(), scoresNeeded);
-  }
-
-  /**
-   * Create the {@link FacetsAccumulator} to be used. Default is 
-   * {@link StandardFacetsAccumulator}. Called once at the constructor of the collector.
-   * 
-   * @param facetSearchParams
-   *            The search params.
-   * @param indexReader
-   *            A reader to the index to search in.
-   * @param taxonomyReader
-   *            A reader to the active taxonomy.
-   * @return The {@link FacetsAccumulator} to use.
-   */
-  protected FacetsAccumulator initFacetsAccumulator(FacetSearchParams facetSearchParams,
-                                                    IndexReader indexReader,
-                                                    TaxonomyReader taxonomyReader) {
-    return new StandardFacetsAccumulator(facetSearchParams, indexReader, taxonomyReader);
+    
+    return new StandardFacetsCollector(fsp, indexReader, taxoReader);
   }
-
+  
   /**
-   * Return accumulated facets results (according to faceted search parameters) 
-   * for collected documents.
-   * @throws IOException on error
+   * Returns a {@link FacetResult} per {@link FacetRequest} set in
+   * {@link FacetSearchParams}. Note that if one of the {@link FacetRequest
+   * requests} is for a {@link CategoryPath} that does not exist in the taxonomy,
+   * no matching {@link FacetResult} will be returned.
    */
-  public List<FacetResult> getFacetResults() throws IOException {
-    synchronized (resultsGuard) { // over protection 
-      if (results == null) {
-        // lazy creation but just once
-        results = facetsAccumulator.accumulate(scoreDocIdCollector.getScoredDocIDs());
-        scoreDocIdCollector = null;
-      }
-      return results;
-    }
-  }
-
-  @Override
-  public boolean acceptsDocsOutOfOrder() {
-    return false;
-  }
-
-  @Override
-  public void collect(int doc) throws IOException {
-    scoreDocIdCollector.collect(doc);
-  }
-
-  @Override
-  public void setNextReader(AtomicReaderContext context) throws IOException {
-    scoreDocIdCollector.setNextReader(context);
-  }
-
-  @Override
-  public void setScorer(Scorer scorer) throws IOException {
-    scoreDocIdCollector.setScorer(scorer);
-  }
+  public abstract List<FacetResult> getFacetResults() throws IOException;
 
 }

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/StandardFacetsAccumulator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/StandardFacetsAccumulator.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/StandardFacetsAccumulator.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/StandardFacetsAccumulator.java Mon Jan 21 16:11:30 2013
@@ -87,7 +87,7 @@ public class StandardFacetsAccumulator e
     this.facetArrays = facetArrays;
     // can only be computed later when docids size is known
     isUsingComplements = false;
-    partitionSize = PartitionsUtils.partitionSize(searchParams.getFacetIndexingParams(), taxonomyReader);
+    partitionSize = PartitionsUtils.partitionSize(searchParams.indexingParams, taxonomyReader);
     maxPartitions = (int) Math.ceil(this.taxonomyReader.getSize() / (double) partitionSize);
     accumulateGuard = new Object();
   }
@@ -95,7 +95,7 @@ public class StandardFacetsAccumulator e
   public StandardFacetsAccumulator(FacetSearchParams searchParams,
       IndexReader indexReader, TaxonomyReader taxonomyReader) {
     this(searchParams, indexReader, taxonomyReader, new FacetArrays(
-        PartitionsUtils.partitionSize(searchParams.getFacetIndexingParams(), taxonomyReader)));
+        PartitionsUtils.partitionSize(searchParams.indexingParams, taxonomyReader)));
   }
 
   @Override
@@ -112,7 +112,7 @@ public class StandardFacetsAccumulator e
       if (isUsingComplements) {
         try {
           totalFacetCounts = TotalFacetCountsCache.getSingleton().getTotalCounts(indexReader, taxonomyReader, 
-              searchParams.getFacetIndexingParams());
+              searchParams.indexingParams);
           if (totalFacetCounts != null) {
             docids = ScoredDocIdsUtils.getComplementSet(docids, indexReader);
           } else {
@@ -159,7 +159,7 @@ public class StandardFacetsAccumulator e
           // In this implementation merges happen after each partition,
           // but other impl could merge only at the end.
           final HashSet<FacetRequest> handledRequests = new HashSet<FacetRequest>();
-          for (FacetRequest fr : searchParams.getFacetRequests()) {
+          for (FacetRequest fr : searchParams.facetRequests) {
             // Handle and merge only facet requests which were not already handled.  
             if (handledRequests.add(fr)) {
               FacetResultsHandler frHndlr = fr.createFacetResultsHandler(taxonomyReader);
@@ -178,7 +178,7 @@ public class StandardFacetsAccumulator e
 
       // gather results from all requests into a list for returning them
       List<FacetResult> res = new ArrayList<FacetResult>();
-      for (FacetRequest fr : searchParams.getFacetRequests()) {
+      for (FacetRequest fr : searchParams.facetRequests) {
         FacetResultsHandler frHndlr = fr.createFacetResultsHandler(taxonomyReader);
         IntermediateFacetResult tmpResult = fr2tmpRes.get(fr);
         if (tmpResult == null) {
@@ -321,8 +321,8 @@ public class StandardFacetsAccumulator e
     
     HashMap<CategoryListIterator, Aggregator> categoryLists = new HashMap<CategoryListIterator, Aggregator>();
 
-    FacetIndexingParams indexingParams = searchParams.getFacetIndexingParams();
-    for (FacetRequest facetRequest : searchParams.getFacetRequests()) {
+    FacetIndexingParams indexingParams = searchParams.indexingParams;
+    for (FacetRequest facetRequest : searchParams.facetRequests) {
       Aggregator categoryAggregator = facetRequest.createAggregator(isUsingComplements, facetArrays, taxonomyReader);
 
       CategoryListIterator cli = indexingParams.getCategoryListParams(facetRequest.categoryPath).createCategoryListIterator(partition);

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/TotalFacetCounts.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/TotalFacetCounts.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/TotalFacetCounts.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/TotalFacetCounts.java Mon Jan 21 16:11:30 2013
@@ -8,9 +8,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.util.Arrays;
 import java.util.HashMap;
-import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.lucene.facet.index.params.CategoryListParams;
@@ -150,14 +148,13 @@ public class TotalFacetCounts {
   }
   
   // needed because FacetSearchParams do not allow empty FacetRequests
-  private static final List<FacetRequest> DUMMY_REQ = Arrays.asList(
-      new FacetRequest[] { new CountFacetRequest(CategoryPath.EMPTY, 1) });
+  private static final FacetRequest DUMMY_REQ = new CountFacetRequest(CategoryPath.EMPTY, 1);
 
   static TotalFacetCounts compute(final IndexReader indexReader, final TaxonomyReader taxonomy, 
       final FacetIndexingParams facetIndexingParams) throws IOException {
     int partitionSize = PartitionsUtils.partitionSize(facetIndexingParams, taxonomy);
     final int[][] counts = new int[(int) Math.ceil(taxonomy.getSize()  /(float) partitionSize)][partitionSize];
-    FacetSearchParams newSearchParams = new FacetSearchParams(DUMMY_REQ, facetIndexingParams); 
+    FacetSearchParams newSearchParams = new FacetSearchParams(facetIndexingParams, DUMMY_REQ); 
       //createAllListsSearchParams(facetIndexingParams,  this.totalCounts);
     FacetsAccumulator fe = new StandardFacetsAccumulator(newSearchParams, indexReader, taxonomy) {
       @Override

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/params/FacetSearchParams.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/params/FacetSearchParams.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/params/FacetSearchParams.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/params/FacetSearchParams.java Mon Jan 21 16:11:30 2013
@@ -35,8 +35,8 @@ import org.apache.lucene.facet.index.par
  */
 public class FacetSearchParams {
 
-  protected final FacetIndexingParams indexingParams;
-  protected final List<FacetRequest> facetRequests;
+  public final FacetIndexingParams indexingParams;
+  public final List<FacetRequest> facetRequests;
   
   /**
    * Initializes with the given {@link FacetRequest requests} and default
@@ -57,6 +57,14 @@ public class FacetSearchParams {
   public FacetSearchParams(List<FacetRequest> facetRequests) {
     this(facetRequests, FacetIndexingParams.ALL_PARENTS);
   }
+  
+  /**
+   * Initilizes with the given {@link FacetRequest requests} and
+   * {@link FacetIndexingParams}.
+   */
+  public FacetSearchParams(FacetIndexingParams indexingParams, FacetRequest... facetRequests) {
+    this(Arrays.asList(facetRequests), indexingParams);
+  }
 
   /**
    * Initilizes with the given {@link FacetRequest requests} and
@@ -66,24 +74,8 @@ public class FacetSearchParams {
     if (facetRequests == null || facetRequests.size() == 0) {
       throw new IllegalArgumentException("at least one FacetRequest must be defined");
     }
-    this.indexingParams = indexingParams;
     this.facetRequests = facetRequests;
-  }
-
-  /**
-   * Returns the {@link FacetIndexingParams} that were passed to the
-   * constructor.
-   */
-  public FacetIndexingParams getFacetIndexingParams() {
-    return indexingParams;
-  }
-  
-  /**
-   * Returns the list of {@link FacetRequest facet requests} that were passed to
-   * the constructor.
-   */
-  public List<FacetRequest> getFacetRequests() {
-    return facetRequests;
+    this.indexingParams = indexingParams;
   }
 
   @Override
@@ -92,10 +84,10 @@ public class FacetSearchParams {
     final char NEWLINE = '\n';
 
     StringBuilder sb = new StringBuilder("IndexingParams: ");
-    sb.append(NEWLINE).append(TAB).append(getFacetIndexingParams());
+    sb.append(NEWLINE).append(TAB).append(indexingParams);
     
     sb.append(NEWLINE).append("FacetRequests:");
-    for (FacetRequest facetRequest : getFacetRequests()) {
+    for (FacetRequest facetRequest : facetRequests) {
       sb.append(NEWLINE).append(TAB).append(facetRequest);
     }
     

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/sampling/Sampler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/sampling/Sampler.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/sampling/Sampler.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/java/org/apache/lucene/facet/search/sampling/Sampler.java Mon Jan 21 16:11:30 2013
@@ -210,11 +210,11 @@ public abstract class Sampler {
     double overSampleFactor = getSamplingParams().getOversampleFactor();
     if (overSampleFactor > 1) { // any factoring to do?
       List<FacetRequest> facetRequests = new ArrayList<FacetRequest>();
-      for (FacetRequest frq : original.getFacetRequests()) {
+      for (FacetRequest frq : original.facetRequests) {
         int overSampledNumResults = (int) Math.ceil(frq.getNumResults() * overSampleFactor);
         facetRequests.add(new OverSampledFacetRequest(frq, overSampledNumResults));
       }
-      res = new FacetSearchParams(facetRequests, original.getFacetIndexingParams());
+      res = new FacetSearchParams(facetRequests, original.indexingParams);
     }
     return res;
   }

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java Mon Jan 21 16:11:30 2013
@@ -197,7 +197,7 @@ public abstract class FacetTestBase exte
    * test with different faceted search params.
    */
   protected FacetSearchParams getFacetSearchParams(FacetIndexingParams iParams, FacetRequest... facetRequests) {
-    return new FacetSearchParams(Arrays.asList(facetRequests), iParams);
+    return new FacetSearchParams(iParams, facetRequests);
   }
 
   /**
@@ -316,7 +316,7 @@ public abstract class FacetTestBase exte
       assertCountsAndCardinality(facetCountsTruth, subRes, reqNumResults); // recurse into child results
     }
   }
-  
+
   /** Validate results equality */
   protected static void assertSameResults(List<FacetResult> expected, List<FacetResult> actual) {
     assertEquals("wrong number of facet results", expected.size(), actual.size());

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java Mon Jan 21 16:11:30 2013
@@ -83,8 +83,7 @@ public class FacetTestUtils {
     return dirs;
   }
 
-  public static IndexTaxonomyReaderPair[] createIndexTaxonomyReaderPair(
-      Directory[][] dirs) throws IOException {
+  public static IndexTaxonomyReaderPair[] createIndexTaxonomyReaderPair(Directory[][] dirs) throws IOException {
     IndexTaxonomyReaderPair[] pairs = new IndexTaxonomyReaderPair[dirs.length];
     for (int i = 0; i < dirs.length; i++) {
       IndexTaxonomyReaderPair pair = new IndexTaxonomyReaderPair();
@@ -96,8 +95,7 @@ public class FacetTestUtils {
     return pairs;
   }
   
-  public static IndexTaxonomyWriterPair[] createIndexTaxonomyWriterPair(
-      Directory[][] dirs) throws IOException {
+  public static IndexTaxonomyWriterPair[] createIndexTaxonomyWriterPair(Directory[][] dirs) throws IOException {
     IndexTaxonomyWriterPair[] pairs = new IndexTaxonomyWriterPair[dirs.length];
     for (int i = 0; i < dirs.length; i++) {
       IndexTaxonomyWriterPair pair = new IndexTaxonomyWriterPair();
@@ -111,9 +109,8 @@ public class FacetTestUtils {
     return pairs;
   }
 
-  public static Collector[] search(IndexSearcher searcher,
-      TaxonomyReader taxonomyReader, FacetIndexingParams iParams, int k,
-      String... facetNames) throws IOException {
+  public static Collector[] search(IndexSearcher searcher, TaxonomyReader taxonomyReader, FacetIndexingParams iParams, 
+      int k, String... facetNames) throws IOException {
     
     Collector[] collectors = new Collector[2];
     
@@ -125,10 +122,8 @@ public class FacetTestUtils {
     }
     FacetSearchParams facetSearchParams = new FacetSearchParams(fRequests, iParams);
 
-    TopScoreDocCollector topDocsCollector = TopScoreDocCollector.create(
-        searcher.getIndexReader().maxDoc(), true);
-    FacetsCollector facetsCollector = new FacetsCollector(
-        facetSearchParams, searcher.getIndexReader(), taxonomyReader);
+    TopScoreDocCollector topDocsCollector = TopScoreDocCollector.create(searcher.getIndexReader().maxDoc(), true);
+    FacetsCollector facetsCollector = FacetsCollector.create(facetSearchParams, searcher.getIndexReader(), taxonomyReader);
     Collector mColl = MultiCollector.wrap(topDocsCollector, facetsCollector);
     
     collectors[0] = topDocsCollector;

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/OrdinalMappingReaderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/OrdinalMappingReaderTest.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/OrdinalMappingReaderTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/OrdinalMappingReaderTest.java Mon Jan 21 16:11:30 2013
@@ -73,7 +73,7 @@ public class OrdinalMappingReaderTest ex
     DirectoryTaxonomyReader taxReader = new DirectoryTaxonomyReader(taxDir);
     IndexSearcher searcher = newSearcher(reader1);
     FacetSearchParams fsp = new FacetSearchParams(new CountFacetRequest(new CategoryPath("tag"), NUM_DOCS));
-    FacetsCollector collector = new FacetsCollector(fsp, reader1, taxReader);
+    FacetsCollector collector = FacetsCollector.create(fsp, reader1, taxReader);
     searcher.search(new MatchAllDocsQuery(), collector);
     FacetResult result = collector.getFacetResults().get(0);
     FacetResultNode node = result.getFacetResultNode();

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/TestFacetsPayloadMigrationReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/TestFacetsPayloadMigrationReader.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/TestFacetsPayloadMigrationReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/index/TestFacetsPayloadMigrationReader.java Mon Jan 21 16:11:30 2013
@@ -268,7 +268,7 @@ public class TestFacetsPayloadMigrationR
       requests.add(new CountFacetRequest(new CategoryPath(dim), 5));
     }
     FacetSearchParams fsp = new FacetSearchParams(requests, fip);
-    FacetsCollector fc = new FacetsCollector(fsp, indexReader, taxoReader);
+    FacetsCollector fc = FacetsCollector.create(fsp, indexReader, taxoReader);
     MatchAllDocsQuery base = new MatchAllDocsQuery();
     searcher.search(base, fc);
     List<FacetResult> facetResults = fc.getFacetResults();
@@ -285,12 +285,10 @@ public class TestFacetsPayloadMigrationR
     // verify drill-down
     for (String dim : expectedCounts.keySet()) {
       CategoryPath drillDownCP = new CategoryPath(dim);
-      ArrayList<FacetRequest> request = new ArrayList<FacetRequest>(1);
-      request.add(new CountFacetRequest(drillDownCP, 10));
-      FacetSearchParams fsp = new FacetSearchParams(request, fip);
+      FacetSearchParams fsp = new FacetSearchParams(fip, new CountFacetRequest(drillDownCP, 10));
       Query drillDown = DrillDown.query(fsp, new MatchAllDocsQuery(), drillDownCP);
       TotalHitCountCollector total = new TotalHitCountCollector();
-      FacetsCollector fc = new FacetsCollector(fsp, indexReader, taxoReader);
+      FacetsCollector fc = FacetsCollector.create(fsp, indexReader, taxoReader);
       searcher.search(drillDown, MultiCollector.wrap(fc, total));
       assertTrue("no results for drill-down query " + drillDown, total.getTotalHits() > 0);
       List<FacetResult> facetResults = fc.getFacetResults();

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/SamplingWrapperTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/SamplingWrapperTest.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/SamplingWrapperTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/SamplingWrapperTest.java Mon Jan 21 16:11:30 2013
@@ -29,11 +29,10 @@ import org.apache.lucene.facet.taxonomy.
 public class SamplingWrapperTest extends BaseSampleTestTopK {
 
   @Override
-  protected FacetsAccumulator getSamplingAccumulator(Sampler sampler,
-      TaxonomyReader taxoReader, IndexReader indexReader,
-      FacetSearchParams searchParams) {
-    FacetsAccumulator fExtrctr = new StandardFacetsAccumulator(searchParams,
-        indexReader, taxoReader);
-    return new SamplingWrapper(fExtrctr, sampler);
+  protected FacetsAccumulator getSamplingAccumulator(Sampler sampler, TaxonomyReader taxoReader, 
+      IndexReader indexReader, FacetSearchParams searchParams) {
+    FacetsAccumulator fa = new StandardFacetsAccumulator(searchParams, indexReader, taxoReader);
+    return new SamplingWrapper(fa, sampler);
   }
+  
 }

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestDemoFacets.java Mon Jan 21 16:11:30 2013
@@ -22,11 +22,11 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.lucene.document.Document;
+import org.apache.lucene.facet.FacetTestUtils;
 import org.apache.lucene.facet.index.FacetFields;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.search.results.FacetResult;
-import org.apache.lucene.facet.search.results.FacetResultNode;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyReader;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
@@ -91,7 +91,7 @@ public class TestDemoFacets extends Luce
         new CountFacetRequest(new CategoryPath("Author"), 10));
 
     // Aggregatses the facet counts:
-    FacetsCollector c = new FacetsCollector(fsp, searcher.getIndexReader(), taxoReader);
+    FacetsCollector c = FacetsCollector.create(fsp, searcher.getIndexReader(), taxoReader);
 
     // MatchAllDocsQuery is for "browsing" (counts facets
     // for all non-deleted docs in the index); normally
@@ -103,20 +103,20 @@ public class TestDemoFacets extends Luce
     List<FacetResult> results = c.getFacetResults();
     assertEquals(2, results.size());
     assertEquals("Publish Date (5)\n  2012 (2)\n  2010 (2)\n  1999 (1)\n",
-                 toSimpleString(results.get(0)));
+        FacetTestUtils.toSimpleString(results.get(0)));
     assertEquals("Author (5)\n  Lisa (2)\n  Frank (1)\n  Susan (1)\n  Bob (1)\n",
-                 toSimpleString(results.get(1)));
+        FacetTestUtils.toSimpleString(results.get(1)));
 
     
     // Now user drills down on Publish Date/2010:
     fsp = new FacetSearchParams(new CountFacetRequest(new CategoryPath("Author"), 10));
     Query q2 = DrillDown.query(fsp, new MatchAllDocsQuery(), new CategoryPath("Publish Date/2010", '/'));
-    c = new FacetsCollector(fsp, searcher.getIndexReader(), taxoReader);
+    c = FacetsCollector.create(fsp, searcher.getIndexReader(), taxoReader);
     searcher.search(q2, c);
     results = c.getFacetResults();
     assertEquals(1, results.size());
     assertEquals("Author (2)\n  Lisa (1)\n  Bob (1)\n",
-                 toSimpleString(results.get(0)));
+        FacetTestUtils.toSimpleString(results.get(0)));
 
     taxoReader.close();
     searcher.getIndexReader().close();
@@ -124,16 +124,4 @@ public class TestDemoFacets extends Luce
     taxoDir.close();
   }
 
-  private String toSimpleString(FacetResult fr) {
-    StringBuilder sb = new StringBuilder();
-    toSimpleString(0, sb, fr.getFacetResultNode(), "");
-    return sb.toString();
-  }
-
-  private void toSimpleString(int depth, StringBuilder sb, FacetResultNode node, String indent) {
-    sb.append(indent + node.label.components[depth] + " (" + (int) node.value + ")\n");
-    for(FacetResultNode childNode : node.subResults) {
-      toSimpleString(depth+1, sb, childNode, indent + "  ");
-    }
-  }
 }

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java Mon Jan 21 16:11:30 2013
@@ -73,7 +73,7 @@ public class TestFacetsCollector extends
     DirectoryReader r = DirectoryReader.open(indexDir);
     DirectoryTaxonomyReader taxo = new DirectoryTaxonomyReader(taxoDir);
     
-    FacetsCollector fc = new FacetsCollector(sParams, r, taxo);
+    FacetsCollector fc = FacetsCollector.create(sParams, r, taxo);
     TopScoreDocCollector topDocs = TopScoreDocCollector.create(10, false);
     new IndexSearcher(r).search(new MatchAllDocsQuery(), MultiCollector.wrap(fc, topDocs));
     

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java Mon Jan 21 16:11:30 2013
@@ -336,7 +336,7 @@ public class TestMultipleCategoryLists e
     FacetSearchParams facetSearchParams = new FacetSearchParams(facetRequests, iParams);
 
     // perform documents search and facets accumulation
-    FacetsCollector facetsCollector = new FacetsCollector(facetSearchParams, ir, tr);
+    FacetsCollector facetsCollector = FacetsCollector.create(facetSearchParams, ir, tr);
     searcher.search(q, MultiCollector.wrap(topDocsCollector, facetsCollector));
     return facetsCollector;
   }

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestSameRequestAccumulation.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestSameRequestAccumulation.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestSameRequestAccumulation.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestSameRequestAccumulation.java Mon Jan 21 16:11:30 2013
@@ -44,7 +44,7 @@ public class TestSameRequestAccumulation
     final CountFacetRequest facetRequest = new CountFacetRequest(new CategoryPath("root"), 10);
     FacetSearchParams fsp = new FacetSearchParams(facetRequest);
     
-    FacetsCollector fc = new FacetsCollector(fsp, indexReader, taxoReader);
+    FacetsCollector fc = FacetsCollector.create(fsp, indexReader, taxoReader);
     searcher.search(new MatchAllDocsQuery(), fc);
     
     final String expected = fc.getFacetResults().get(0).toString();
@@ -53,9 +53,9 @@ public class TestSameRequestAccumulation
     fsp = new FacetSearchParams(facetRequest, facetRequest, new CountFacetRequest(new CategoryPath("root"), 10));
 
     // make sure the search params holds 3 requests now
-    assertEquals(3, fsp.getFacetRequests().size());
+    assertEquals(3, fsp.facetRequests.size());
     
-    fc = new FacetsCollector(fsp, indexReader, taxoReader);
+    fc = FacetsCollector.create(fsp, indexReader, taxoReader);
     searcher.search(new MatchAllDocsQuery(), fc);
     List<FacetResult> actual = fc.getFacetResults();
 

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestStandardFacetsAccumulator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestStandardFacetsAccumulator.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestStandardFacetsAccumulator.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestStandardFacetsAccumulator.java Mon Jan 21 16:11:30 2013
@@ -1,7 +1,6 @@
 package org.apache.lucene.facet.search;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -104,16 +103,14 @@ public class TestStandardFacetsAccumulat
     
     // search for "f:a", only segments 1 and 3 should match results
     Query q = new TermQuery(new Term("f", "a"));
-    ArrayList<FacetRequest> requests = new ArrayList<FacetRequest>(1);
-    CountFacetRequest countNoComplements = new CountFacetRequest(new CategoryPath("A"), 10) {
+    FacetRequest countNoComplements = new CountFacetRequest(new CategoryPath("A"), 10) {
       @Override
       public boolean supportsComplements() {
         return false; // disable complements
       }
     };
-    requests.add(countNoComplements);
-    FacetSearchParams fsp = new FacetSearchParams(requests, fip);
-    FacetsCollector fc = new FacetsCollector(fsp , indexReader, taxoReader);
+    FacetSearchParams fsp = new FacetSearchParams(fip, countNoComplements);
+    FacetsCollector fc = new StandardFacetsCollector(fsp , indexReader, taxoReader);
     indexSearcher.search(q, fc);
     List<FacetResult> results = fc.getFacetResults();
     assertEquals("received too many facet results", 1, results.size());

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKInEachNodeResultHandler.java Mon Jan 21 16:11:30 2013
@@ -167,7 +167,7 @@ public class TestTopKInEachNodeResultHan
       facetRequests.add(cfrb20);
       FacetSearchParams facetSearchParams = new FacetSearchParams(facetRequests, iParams);
       
-      FacetArrays facetArrays = new FacetArrays(PartitionsUtils.partitionSize(facetSearchParams.getFacetIndexingParams(), tr));
+      FacetArrays facetArrays = new FacetArrays(PartitionsUtils.partitionSize(facetSearchParams.indexingParams, tr));
       FacetsAccumulator fctExtrctr = new StandardFacetsAccumulator(facetSearchParams, is.getIndexReader(), tr, facetArrays);
       fctExtrctr.setComplementThreshold(FacetsAccumulator.DISABLE_COMPLEMENT);
       long start = System.currentTimeMillis();

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandler.java Mon Jan 21 16:11:30 2013
@@ -89,7 +89,7 @@ public class TestTopKResultsHandler exte
       // do different facet counts and compare to control
       FacetSearchParams sParams = getFacetSearchParams(facetRequests, getFacetIndexingParams(partitionSize));
 
-      FacetsCollector fc = new FacetsCollector(sParams, indexReader, taxoReader) {
+      FacetsCollector fc = new StandardFacetsCollector(sParams, indexReader, taxoReader) {
         @Override
         protected FacetsAccumulator initFacetsAccumulator(FacetSearchParams facetSearchParams, IndexReader indexReader, TaxonomyReader taxonomyReader) {
           FacetsAccumulator fa = new StandardFacetsAccumulator(facetSearchParams, indexReader, taxonomyReader);
@@ -153,10 +153,10 @@ public class TestTopKResultsHandler exte
 
       // do different facet counts and compare to control
       CategoryPath path = new CategoryPath("a", "b");
-      FacetSearchParams sParams = getFacetSearchParams(
-          getFacetIndexingParams(partitionSize), new CountFacetRequest(path, Integer.MAX_VALUE));
+      FacetSearchParams sParams = getFacetSearchParams(getFacetIndexingParams(partitionSize), 
+          new CountFacetRequest(path, Integer.MAX_VALUE));
 
-      FacetsCollector fc = new FacetsCollector(sParams, indexReader, taxoReader) {
+      FacetsCollector fc = new StandardFacetsCollector(sParams, indexReader, taxoReader) {
         @Override
         protected FacetsAccumulator initFacetsAccumulator(FacetSearchParams facetSearchParams, IndexReader indexReader, TaxonomyReader taxonomyReader) {
           FacetsAccumulator fa = new StandardFacetsAccumulator(facetSearchParams, indexReader, taxonomyReader);
@@ -176,7 +176,7 @@ public class TestTopKResultsHandler exte
       FacetSearchParams sParams2 = getFacetSearchParams(
           getFacetIndexingParams(partitionSize), new CountFacetRequest(path, Integer.MAX_VALUE));
 
-      FacetsCollector fc2 = new FacetsCollector(sParams2, indexReader, taxoReader) {
+      FacetsCollector fc2 = new StandardFacetsCollector(sParams2, indexReader, taxoReader) {
         @Override
         protected FacetsAccumulator initFacetsAccumulator(FacetSearchParams facetSearchParams, IndexReader indexReader, TaxonomyReader taxonomyReader) {
           FacetsAccumulator fa = new StandardFacetsAccumulator(facetSearchParams, indexReader, taxonomyReader);
@@ -214,7 +214,7 @@ public class TestTopKResultsHandler exte
           getFacetIndexingParams(partitionSize),
           new CountFacetRequest(path, 10));
 
-      FacetsCollector fc = new FacetsCollector(sParams, indexReader, taxoReader);
+      FacetsCollector fc = FacetsCollector.create(sParams, indexReader, taxoReader);
       
       searcher.search(new MatchAllDocsQuery(), fc);
       

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandlerRandom.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandlerRandom.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandlerRandom.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/TestTopKResultsHandlerRandom.java Mon Jan 21 16:11:30 2013
@@ -4,15 +4,14 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.List;
 
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.search.MatchAllDocsQuery;
-import org.apache.lucene.search.Query;
-import org.junit.Test;
-
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.search.results.FacetResult;
 import org.apache.lucene.facet.search.results.FacetResultNode;
 import org.apache.lucene.facet.taxonomy.TaxonomyReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.search.MatchAllDocsQuery;
+import org.apache.lucene.search.Query;
+import org.junit.Test;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -37,7 +36,7 @@ public class TestTopKResultsHandlerRando
       throws IOException {
     Query q = new MatchAllDocsQuery();
     FacetSearchParams facetSearchParams = searchParamsWithRequests(numResults, partitionSize);
-    FacetsCollector fc = new FacetsCollector(facetSearchParams, indexReader, taxoReader) {
+    FacetsCollector fc = new StandardFacetsCollector(facetSearchParams, indexReader, taxoReader) {
       @Override
       protected FacetsAccumulator initFacetsAccumulator(
           FacetSearchParams facetSearchParams, IndexReader indexReader,

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/associations/AssociationsFacetRequestTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/associations/AssociationsFacetRequestTest.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/associations/AssociationsFacetRequestTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/associations/AssociationsFacetRequestTest.java Mon Jan 21 16:11:30 2013
@@ -111,7 +111,7 @@ public class AssociationsFacetRequestTes
     
     Query q = new MatchAllDocsQuery();
 
-    FacetsCollector fc = new FacetsCollector(fsp, reader, taxo);
+    FacetsCollector fc = FacetsCollector.create(fsp, reader, taxo);
     
     IndexSearcher searcher = newSearcher(reader);
     searcher.search(q, fc);
@@ -136,7 +136,7 @@ public class AssociationsFacetRequestTes
     
     Query q = new MatchAllDocsQuery();
 
-    FacetsCollector fc = new FacetsCollector(fsp, reader, taxo);
+    FacetsCollector fc = FacetsCollector.create(fsp, reader, taxo);
     
     IndexSearcher searcher = newSearcher(reader);
     searcher.search(q, fc);
@@ -166,7 +166,7 @@ public class AssociationsFacetRequestTes
     
     Query q = new MatchAllDocsQuery();
 
-    FacetsCollector fc = new FacetsCollector(fsp, reader, taxo);
+    FacetsCollector fc = FacetsCollector.create(fsp, reader, taxo);
     
     IndexSearcher searcher = newSearcher(reader);
     searcher.search(q, fc);

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/BaseSampleTestTopK.java Mon Jan 21 16:11:30 2013
@@ -3,22 +3,22 @@ package org.apache.lucene.facet.search.s
 import java.util.List;
 import java.util.Random;
 
-import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.TermQuery;
-
-import org.apache.lucene.search.MultiCollector;
 import org.apache.lucene.facet.search.BaseTestTopK;
 import org.apache.lucene.facet.search.FacetsAccumulator;
 import org.apache.lucene.facet.search.FacetsCollector;
 import org.apache.lucene.facet.search.ScoredDocIDs;
 import org.apache.lucene.facet.search.ScoredDocIdCollector;
+import org.apache.lucene.facet.search.StandardFacetsCollector;
 import org.apache.lucene.facet.search.params.FacetRequest;
 import org.apache.lucene.facet.search.params.FacetRequest.ResultMode;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.search.results.FacetResult;
 import org.apache.lucene.facet.taxonomy.TaxonomyReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.MultiCollector;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.TermQuery;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -48,7 +48,7 @@ public abstract class BaseSampleTestTopK
   @Override
   protected FacetSearchParams searchParamsWithRequests(int numResults, int partitionSize) {
     FacetSearchParams res = super.searchParamsWithRequests(numResults, partitionSize);
-    for (FacetRequest req : res.getFacetRequests()) {
+    for (FacetRequest req : res.facetRequests) {
       // randomize the way we aggregate results
       if (random().nextBoolean()) {
         req.setResultMode(ResultMode.GLOBAL_FLAT);
@@ -78,7 +78,7 @@ public abstract class BaseSampleTestTopK
         ScoredDocIdCollector docCollector = ScoredDocIdCollector.create(indexReader.maxDoc(), false);
         
         FacetSearchParams expectedSearchParams = searchParamsWithRequests(K, partitionSize); 
-        FacetsCollector fc = new FacetsCollector(expectedSearchParams, indexReader, taxoReader);
+        FacetsCollector fc = FacetsCollector.create(expectedSearchParams, indexReader, taxoReader);
         
         searcher.search(q, MultiCollector.wrap(docCollector, fc));
         
@@ -120,7 +120,7 @@ public abstract class BaseSampleTestTopK
   
   private FacetsCollector samplingCollector(final boolean complement, final Sampler sampler,
       FacetSearchParams samplingSearchParams) {
-    FacetsCollector samplingFC = new FacetsCollector(samplingSearchParams, indexReader, taxoReader) {
+    FacetsCollector samplingFC = new StandardFacetsCollector(samplingSearchParams, indexReader, taxoReader) {
       @Override
       protected FacetsAccumulator initFacetsAccumulator(FacetSearchParams facetSearchParams, IndexReader indexReader,
           TaxonomyReader taxonomyReader) {

Modified: lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/OversampleWithDepthTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/OversampleWithDepthTest.java?rev=1436446&r1=1436445&r2=1436446&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/OversampleWithDepthTest.java (original)
+++ lucene/dev/branches/branch_4x/lucene/facet/src/test/org/apache/lucene/facet/search/sampling/OversampleWithDepthTest.java Mon Jan 21 16:11:30 2013
@@ -8,6 +8,7 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.facet.index.FacetFields;
 import org.apache.lucene.facet.search.FacetsAccumulator;
 import org.apache.lucene.facet.search.FacetsCollector;
+import org.apache.lucene.facet.search.StandardFacetsCollector;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
 import org.apache.lucene.facet.search.params.FacetRequest;
 import org.apache.lucene.facet.search.params.FacetRequest.ResultMode;
@@ -111,11 +112,10 @@ public class OversampleWithDepthTest ext
   }
 
   /** search reader <code>r</code>*/
-  private FacetResult searchWithFacets(IndexReader r,
-      TaxonomyReader tr, FacetSearchParams fsp, final SamplingParams params)
-          throws IOException {
+  private FacetResult searchWithFacets(IndexReader r, TaxonomyReader tr, FacetSearchParams fsp, 
+      final SamplingParams params) throws IOException {
     // a FacetsCollector with a sampling accumulator
-    FacetsCollector fcWithSampling = new FacetsCollector(fsp, r, tr) {
+    FacetsCollector fcWithSampling = new StandardFacetsCollector(fsp, r, tr) {
       @Override
       protected FacetsAccumulator initFacetsAccumulator(FacetSearchParams facetSearchParams, IndexReader indexReader,
           TaxonomyReader taxonomyReader) {