You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by th...@apache.org on 2015/02/13 22:39:58 UTC
svn commit: r1659694 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/handler/component/SearchHandler.java
core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java
Author: thelabdude
Date: Fri Feb 13 21:39:57 2015
New Revision: 1659694
URL: http://svn.apache.org/r1659694
Log:
SOLR-6311: SearchHandler should use path when no qt or shard.qt parameter is specified
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1659694&r1=1659693&r2=1659694&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Fri Feb 13 21:39:57 2015
@@ -155,6 +155,10 @@ Other Changes
* SOLR-7103: Remove unused method params in faceting code. (shalin)
+* SOLR-6311: When performing distributed queries, SearchHandler should use path
+ when no qt or shard.qt parameter is specified; fix also resolves SOLR-4479.
+ (Steve Molloy, Timothy Potter)
+
================== 5.0.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java?rev=1659694&r1=1659693&r2=1659694&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java Fri Feb 13 21:39:57 2015
@@ -18,6 +18,7 @@
package org.apache.solr.handler.component;
import org.apache.lucene.index.ExitableDirectoryReader;
+import org.apache.lucene.util.Version;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrException;
@@ -306,10 +307,21 @@ public class SearchHandler extends Reque
params.set("NOW", Long.toString(rb.requestInfo.getNOW().getTime()));
}
String shardQt = params.get(ShardParams.SHARDS_QT);
- if (shardQt == null) {
- params.remove(CommonParams.QT);
- } else {
+ if (shardQt != null) {
params.set(CommonParams.QT, shardQt);
+ } else {
+ // for distributed queries that don't include shards.qt, use the original path
+ // as the default but operators need to update their luceneMatchVersion to enable
+ // this behavior since it did not work this way prior to 5.1
+ if (req.getCore().getSolrConfig().luceneMatchVersion.onOrAfter(Version.LUCENE_5_1_0)) {
+ String reqPath = (String)req.getContext().get("path");
+ if (!"/select".equals(reqPath)) {
+ params.set(CommonParams.QT, reqPath);
+ } // else if path is /select, then the qt gets passed thru if set
+ } else {
+ // this is the pre-5.1 behavior, which translates to sending the shard request to /select
+ params.remove(CommonParams.QT);
+ }
}
shardHandler1.submit(sreq, shard, params);
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java?rev=1659694&r1=1659693&r2=1659694&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/TermVectorComponentDistributedTest.java Fri Feb 13 21:39:57 2015
@@ -123,19 +123,16 @@ public class TermVectorComponentDistribu
final String tv = "tvrh";
for (String q : new String[] {"id:0", "id:7", "id:[3 TO 6]", "*:*"}) {
-
query("sort","id desc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
TermVectorComponent.COMPONENT_NAME, "true",
TermVectorParams.TF, "true");
// tv.fl diff from fl
query("sort", "id asc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
"fl", "*,score",
"tv.fl", "test_basictv,test_offtv",
TermVectorComponent.COMPONENT_NAME, "true",
@@ -144,8 +141,7 @@ public class TermVectorComponentDistribu
// multi-valued tv.fl
query("sort", "id asc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
"fl", "*,score",
"tv.fl", "test_basictv",
"tv.fl","test_offtv",
@@ -154,16 +150,14 @@ public class TermVectorComponentDistribu
// re-use fl glob
query("sort", "id desc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
"fl", "*,score",
TermVectorComponent.COMPONENT_NAME, "true",
TermVectorParams.TF, "true");
// re-use fl, ignore things we can't handle
query("sort", "id desc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
"fl", "score,test_basictv,[docid],test_postv,val:sum(3,4)",
TermVectorComponent.COMPONENT_NAME, "true",
TermVectorParams.TF, "true");
@@ -171,8 +165,7 @@ public class TermVectorComponentDistribu
// re-use (multi-valued) fl, ignore things we can't handle
query("sort", "id desc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
"fl", "score,test_basictv",
"fl", "[docid],test_postv,val:sum(3,4)",
TermVectorComponent.COMPONENT_NAME, "true",
@@ -182,8 +175,7 @@ public class TermVectorComponentDistribu
query("sort", "id asc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
TermVectorComponent.COMPONENT_NAME, "true",
TermVectorParams.TF, "true",
TermVectorParams.DF, "true",
@@ -193,8 +185,7 @@ public class TermVectorComponentDistribu
query("sort", "id desc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
TermVectorComponent.COMPONENT_NAME, "true",
TermVectorParams.ALL, "true");
@@ -202,8 +193,7 @@ public class TermVectorComponentDistribu
query("sort", "id desc",
"qt",tv,
- "shards.qt",tv,
- "q", q,
+ "q", q,
TermVectorComponent.COMPONENT_NAME, "true",
TermVectorParams.TF, "true",
TermVectorParams.DF, "true",