You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jb...@apache.org on 2014/04/29 06:43:08 UTC
svn commit: r1590865 - in /lucene/dev/trunk/solr/core/src:
java/org/apache/solr/search/CollapsingQParserPlugin.java
test/org/apache/solr/search/TestCollapseQParserPlugin.java
Author: jbernste
Date: Tue Apr 29 04:43:07 2014
New Revision: 1590865
URL: http://svn.apache.org/r1590865
Log:
SOLR-6029: CollapsingQParserPlugin throws ArrayIndexOutOfBoundsException if elevated doc has been deleted from a segment
Modified:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java?rev=1590865&r1=1590864&r2=1590865&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java Tue Apr 29 04:43:07 2014
@@ -266,7 +266,7 @@ public class CollapsingQParserPlugin ext
if(termsEnum.seekExact(ref)) {
docsEnum = termsEnum.docs(liveDocs, docsEnum);
int doc = docsEnum.nextDoc();
- if(doc != -1) {
+ if(doc != DocsEnum.NO_MORE_DOCS) {
//Found the document.
boostDocs.add(doc+docBase);
it.remove();
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java?rev=1590865&r1=1590864&r2=1590865&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestCollapseQParserPlugin.java Tue Apr 29 04:43:07 2014
@@ -343,6 +343,23 @@ public class TestCollapseQParserPlugin e
params.add("group.field", "id");
assertQ(req(params), "*[count(//doc)=2]");
+
+ // delete the elevated docs, confirm collapsing still works
+ assertU(delI("1"));
+ assertU(delI("2"));
+ assertU(commit());
+ params = new ModifiableSolrParams();
+ params.add("q", "YYYY");
+ params.add("fq", "{!collapse field=group_s nullPolicy=collapse}");
+ params.add("defType", "edismax");
+ params.add("bf", "field(test_ti)");
+ params.add("qf", "term_s");
+ params.add("qt", "/elevate");
+ assertQ(req(params), "*[count(//doc)=2]",
+ "//result/doc[1]/float[@name='id'][.='3.0']",
+ "//result/doc[2]/float[@name='id'][.='6.0']");
+
+
}
@Test