You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2017/07/13 19:29:40 UTC
lucene-solr:branch_7_0: commit
4241a13beb0a14e8bd81a520bd8e04ab6c7465aa Author: Erick Erickson
Date: Thu Jul 13 10:39:33 2017 -0700
Repository: lucene-solr
Updated Branches:
refs/heads/branch_7_0 8ddf0c208 -> fbc3d31f1
commit 4241a13beb0a14e8bd81a520bd8e04ab6c7465aa
Author: Erick Erickson <er...@apache.org>
Date: Thu Jul 13 10:39:33 2017 -0700
SOLR-10908: CloudSolrStream.toExpression incorrectly handles fq clauses
(cherry picked from commit 19fd95b46cf40fa0b91b7dcf0b157706ea718efb)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/fbc3d31f
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/fbc3d31f
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/fbc3d31f
Branch: refs/heads/branch_7_0
Commit: fbc3d31f1bab7616ea631cf645923d09ef8123f3
Parents: 8ddf0c2
Author: Erick Erickson <er...@apache.org>
Authored: Thu Jul 13 12:29:25 2017 -0700
Committer: Erick Erickson <er...@apache.org>
Committed: Thu Jul 13 12:29:25 2017 -0700
----------------------------------------------------------------------
solr/CHANGES.txt | 4 ++++
.../client/solrj/io/stream/CloudSolrStream.java | 24 ++++++++++++--------
.../stream/StreamExpressionToExpessionTest.java | 5 +++-
3 files changed, 23 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fbc3d31f/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 2b2095e..c034c47 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -561,6 +561,10 @@ when using one of Exact*StatsCache (Mikhail Khludnev)
* SOLR-10914: RecoveryStrategy's sendPrepRecoveryCmd can get stuck for 5 minutes if leader is unloaded. (shalin)
+* SOLR-11024: ParallelStream should set the StreamContext when constructing SolrStreams (Joel Bernstein)
+
+* SOLR-10908: CloudSolrStream.toExpression incorrectly handles fq clauses (Rohit Singh via Erick Erickson)
+
Optimizations
----------------------
* SOLR-10634: JSON Facet API: When a field/terms facet will retrieve all buckets (i.e. limit:-1)
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fbc3d31f/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java
index 62e4079..7fe98a3 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/io/stream/CloudSolrStream.java
@@ -172,18 +172,24 @@ public class CloudSolrStream extends TupleStream implements Expressible {
// collection
expression.addParameter(collection);
- // parameters
-
ModifiableSolrParams mParams = new ModifiableSolrParams(SolrParams.toMultiMap(params.toNamedList()));
for (Entry<String, String[]> param : mParams.getMap().entrySet()) {
- String value = String.join(",", param.getValue());
-
- // SOLR-8409: This is a special case where the params contain a " character
- // Do note that in any other BASE streams with parameters where a " might come into play
- // that this same replacement needs to take place.
- value = value.replace("\"", "\\\"");
- expression.addParameter(new StreamExpressionNamedParameter(param.getKey(), value));
+ if(param.getKey().equals("fq")) {
+ for(String fqParam : param.getValue()) {
+ // See comment below for params containg a " character
+ expression.addParameter(new StreamExpressionNamedParameter(param.getKey(),
+ fqParam.replace("\"", "\\\"")));
+ }
+ } else {
+ String value = String.join(",", param.getValue());
+
+ // SOLR-8409: This is a special case where the params contain a " character
+ // Do note that in any other BASE streams with parameters where a " might come into play
+ // that this same replacement needs to take place.
+ value = value.replace("\"", "\\\"");
+ expression.addParameter(new StreamExpressionNamedParameter(param.getKey(), value));
+ }
}
// zkHost
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/fbc3d31f/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionToExpessionTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionToExpessionTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionToExpessionTest.java
index 0a597b7..36b2829 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionToExpessionTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionToExpessionTest.java
@@ -74,12 +74,15 @@ public class StreamExpressionToExpessionTest extends LuceneTestCase {
String expressionString;
// Basic test
- stream = new CloudSolrStream(StreamExpressionParser.parse("search(collection1, q=*:*, fl=\"id,a_s,a_i,a_f\", sort=\"a_f asc, a_i asc\")"), factory);
+ stream = new CloudSolrStream(StreamExpressionParser.parse("search(collection1, q=*:*, fl=\"id,a_s,a_i,a_f\", sort=\"a_f asc, a_i asc\", fq=\"a_s:one\", fq=\"a_s:two\")"), factory);
expressionString = stream.toExpression(factory).toString();
+ System.out.println("ExpressionString: " + expressionString.toString());
assertTrue(expressionString.contains("search(collection1,"));
assertTrue(expressionString.contains("q=\"*:*\""));
assertTrue(expressionString.contains("fl=\"id,a_s,a_i,a_f\""));
assertTrue(expressionString.contains("sort=\"a_f asc, a_i asc\""));
+ assertTrue(expressionString.contains("fq=\"a_s:one\""));
+ assertTrue(expressionString.contains("fq=\"a_s:two\""));
// Basic w/aliases
stream = new CloudSolrStream(StreamExpressionParser.parse("search(collection1, q=*:*, fl=\"id,a_s,a_i,a_f\", sort=\"a_f asc, a_i asc\", aliases=\"id=izzy,a_s=kayden\")"), factory);