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 18:33:59 UTC
lucene-solr:branch_7x: commit
4241a13beb0a14e8bd81a520bd8e04ab6c7465aa Author: Erick Erickson
Date: Thu Jul 13 10:39:33 2017 -0700
Repository: lucene-solr
Updated Branches:
refs/heads/branch_7x 7a8b6c324 -> b7e52db2d
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 19fd95b)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b7e52db2
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b7e52db2
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b7e52db2
Branch: refs/heads/branch_7x
Commit: b7e52db2d49f9e43cdd3ac245ad2b363a66518ca
Parents: 7a8b6c3
Author: Erick Erickson <er...@apache.org>
Authored: Thu Jul 13 10:48:22 2017 -0700
Committer: Erick Erickson <er...@apache.org>
Committed: Thu Jul 13 11:33:54 2017 -0700
----------------------------------------------------------------------
solr/CHANGES.txt | 2 ++
.../client/solrj/io/stream/CloudSolrStream.java | 24 ++++++++++++--------
.../stream/StreamExpressionToExpessionTest.java | 5 +++-
3 files changed, 21 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b7e52db2/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index b6e190b..474419e 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -614,6 +614,8 @@ when using one of Exact*StatsCache (Mikhail Khludnev)
* 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/b7e52db2/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/b7e52db2/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);