You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2011/01/30 23:26:22 UTC

svn commit: r1065406 - /lucene/dev/trunk/solr/src/java/org/apache/solr/search/Grouping.java

Author: yonik
Date: Sun Jan 30 22:26:22 2011
New Revision: 1065406

URL: http://svn.apache.org/viewvc?rev=1065406&view=rev
Log:
SOLR-236: fix bug where numFound was always zero if group.offset and group.limit were both zero.

Modified:
    lucene/dev/trunk/solr/src/java/org/apache/solr/search/Grouping.java

Modified: lucene/dev/trunk/solr/src/java/org/apache/solr/search/Grouping.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/java/org/apache/solr/search/Grouping.java?rev=1065406&r1=1065405&r2=1065406&view=diff
==============================================================================
--- lucene/dev/trunk/solr/src/java/org/apache/solr/search/Grouping.java (original)
+++ lucene/dev/trunk/solr/src/java/org/apache/solr/search/Grouping.java Sun Jan 30 22:26:22 2011
@@ -77,10 +77,11 @@ public class Grouping {
       int docsToCollect = getMax(off, len, max);
 
       // TODO: implement a DocList impl that doesn't need to start at offset=0
-      TopDocs topDocs = collector.topDocs(0, docsToCollect);
+      TopDocs topDocs = collector.topDocs(0, Math.max(docsToCollect,1));  // 0 isn't supported as a valid value
+      int docsCollected = Math.min(docsToCollect, topDocs.scoreDocs.length);
 
-      int ids[] = new int[topDocs.scoreDocs.length];
-      float[] scores = needScores ? new float[topDocs.scoreDocs.length] : null;
+      int ids[] = new int[docsCollected];
+      float[] scores = needScores ? new float[docsCollected] : null;
       for (int i=0; i<ids.length; i++) {
         ids[i] = topDocs.scoreDocs[i].doc;
         if (scores != null)