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)