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 2015/06/11 16:35:48 UTC
svn commit: r1684904 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java
Author: shalin
Date: Thu Jun 11 14:35:47 2015
New Revision: 1684904
URL: http://svn.apache.org/r1684904
Log:
SOLR-6835: ReRankQueryParserPlugin checks now whether the reRankQuery parameter is present and not empty
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1684904&r1=1684903&r2=1684904&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Jun 11 14:35:47 2015
@@ -121,6 +121,9 @@ Bug Fixes
* SOLR-7108: Change default query used by /admin/ping to not rely on other parameters such as query parser or
default field. (ehatcher)
+* SOLR-6835: ReRankQueryParserPlugin checks now whether the reRankQuery parameter is present and not empty.
+ (å¸
广åº, Marius Grama via shalin)
+
Optimizations
----------------------
* SOLR-7660: Avoid redundant 'exists' calls made to ZK while fetching cluster state updates. (shalin)
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java?rev=1684904&r1=1684903&r2=1684904&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/ReRankQParserPlugin.java Thu Jun 11 14:35:47 2015
@@ -78,8 +78,10 @@ public class ReRankQParserPlugin extends
}
public Query parse() throws SyntaxError {
-
String reRankQueryString = localParams.get("reRankQuery");
+ if (reRankQueryString == null || reRankQueryString.trim().length() == 0) {
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "reRankQuery parameter is mandatory");
+ }
QParser reRankParser = QParser.getParser(reRankQueryString, null, req);
Query reRankQuery = reRankParser.parse();
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java?rev=1684904&r1=1684903&r2=1684904&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestReRankQParserPlugin.java Thu Jun 11 14:35:47 2015
@@ -23,11 +23,6 @@ import org.apache.solr.common.params.Mod
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import com.carrotsearch.hppc.IntOpenHashSet;
-
-import java.io.IOException;
-import java.util.*;
-import java.util.Random;
public class TestReRankQParserPlugin extends SolrTestCaseJ4 {
@@ -517,9 +512,32 @@ public class TestReRankQParserPlugin ext
"//result/doc[1]/float[@name='id'][.='1.0']", //Elevated
"//result/doc[2]/float[@name='id'][.='4.0']", //Elevated
"//result/doc[3]/float[@name='id'][.='8.0']"); //Boosted during rerank.
+ }
+ @Test
+ public void testRerankQueryParsingShouldFailWithoutMandatoryReRankQueryParameter() throws Exception {
+ assertU(delQ("*:*"));
+ assertU(commit());
+ String[] doc = {"id", "1", "term_s", "YYYY", "group_s", "group1", "test_ti", "5", "test_tl", "10", "test_tf", "2000"};
+ assertU(adoc(doc));
+ assertU(commit());
+ String[] doc1 = {"id", "2", "term_s", "YYYY", "group_s", "group1", "test_ti", "50", "test_tl", "100", "test_tf", "200"};
+ assertU(adoc(doc1));
+ assertU(commit());
- }
+ ModifiableSolrParams params = new ModifiableSolrParams();
+
+ params.add("rq", "{!rerank reRankQuery=$rqq reRankDocs=200}");
+ params.add("q", "term_s:YYYY");
+ params.add("start", "0");
+ params.add("rows", "2");
+ try {
+ h.query(req(params));
+ fail("A syntax error should be thrown when reRankQuery parameter is not specified");
+ } catch (SolrException e) {
+ assertTrue(e.code() == SolrException.ErrorCode.BAD_REQUEST.code);
+ }
+ }
}