You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ds...@apache.org on 2022/06/06 12:03:25 UTC
[lucene-solr] branch branch_8_11 updated: SOLR-16227: Solr SQL query parsing fails on multiple LIKE clauses and multiple terms
This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch branch_8_11
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8_11 by this push:
new a9ed1e5fccb SOLR-16227: Solr SQL query parsing fails on multiple LIKE clauses and multiple terms
a9ed1e5fccb is described below
commit a9ed1e5fccbd1a84c78194a1329a7e1a3032ffc6
Author: Kiran Chitturi <ch...@gmail.com>
AuthorDate: Wed Jun 1 14:04:33 2022 -0400
SOLR-16227: Solr SQL query parsing fails on multiple LIKE clauses and multiple terms
---
solr/CHANGES.txt | 5 ++++-
solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java | 4 +++-
solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java | 3 ++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index d2c59c507e9..22d129527c8 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -64,6 +64,9 @@ Bug Fixes
* SOLR-16209: Rolling restart will no longer trigger as much PKI Plugin error logging. (Mike Drob, Tomás Fernández Löbbe)
+* SOLR-16227: Solr SQL query parsing fails on multiple LIKE clauses and multiple terms
+ (Kiran Chitturi via David Smiley)
+
================== 8.11.1 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
@@ -182,7 +185,7 @@ Other Changes
- errorprone: 2.9.0
- gcp-client: 1.32.1
(Houston Putman)
-
+
* SOLR-15269: Upgrade httpclient and httpmime to 4.5.13. (ventry)
================== 8.10.0 ==================
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java b/solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java
index ae28b4a417d..0df170f81d7 100644
--- a/solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java
+++ b/solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java
@@ -21,6 +21,7 @@ import java.math.BigDecimal;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -363,7 +364,8 @@ class SolrFilter extends Filter implements SolrRel {
boolean hasMultipleTerms = terms.split("\\s+").length > 1;
if (hasMultipleTerms && (terms.contains("*") || terms.contains("?"))) {
String quotedTerms = "\"" + terms.substring(1, terms.length() - 1) + "\"";
- return "{!complexphrase}" + pair.getKey() + ":" + quotedTerms;
+ String query = ClientUtils.encodeLocalParamVal(pair.getKey() + ":" + quotedTerms);
+ return String.format(Locale.ROOT, "{!complexphrase v=%s}", query);
}
} // else treat as an embedded Solr query and pass-through
diff --git a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java b/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
index 5da67dd317a..06bec14aab2 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
@@ -2066,7 +2066,8 @@ public class TestSQLHandler extends SolrCloudTestCase {
expectResults("SELECT b_s FROM $ALIAS WHERE c_t LIKE '(\"dog pig\"~5)'", 2);
expectResults("SELECT b_s FROM $ALIAS WHERE c_t LIKE 'jumped over'", 8);
- expectResults("SELECT b_s FROM $ALIAS WHERE c_t LIKE 'quick brown fox'", 5);
+ expectResults("SELECT b_s FROM $ALIAS WHERE c_t LIKE 'quick brow%'", 5);
+ expectResults("SELECT b_s FROM $ALIAS WHERE c_t LIKE 'quick brow%' AND b_s LIKE 'foo*'", 3);
expectResults("SELECT b_s FROM $ALIAS WHERE b_s LIKE 'foo*'", 5);
expectResults("SELECT b_s FROM $ALIAS WHERE c_t LIKE '*og'", 8);
}