You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/05/04 08:40:44 UTC

[3/9] jena git commit: JENA-1532 | fix for date based text query search

JENA-1532 | fix for date based text query search


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/77058de8
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/77058de8
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/77058de8

Branch: refs/heads/master
Commit: 77058de86a6a85f6bdffc5b0b733572cac1d84b1
Parents: 7f4915e
Author: Anuj Kumar <ak...@isightpartners.com>
Authored: Tue Apr 24 19:38:37 2018 +0200
Committer: Anuj Kumar <ak...@isightpartners.com>
Committed: Tue Apr 24 19:38:37 2018 +0200

----------------------------------------------------------------------
 .../apache/jena/query/text/es/TextIndexES.java  | 21 ++------------------
 .../jena/query/text/es/it/TextIndexESIT.java    |  9 +++++++++
 2 files changed, 11 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/77058de8/jena-text-es/src/main/java/org/apache/jena/query/text/es/TextIndexES.java
----------------------------------------------------------------------
diff --git a/jena-text-es/src/main/java/org/apache/jena/query/text/es/TextIndexES.java b/jena-text-es/src/main/java/org/apache/jena/query/text/es/TextIndexES.java
index 6a8a649..62c66f3 100644
--- a/jena-text-es/src/main/java/org/apache/jena/query/text/es/TextIndexES.java
+++ b/jena-text-es/src/main/java/org/apache/jena/query/text/es/TextIndexES.java
@@ -23,6 +23,7 @@ import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.query.text.*;
 import org.apache.jena.sparql.util.NodeFactoryExtra;
+import org.apache.lucene.queryparser.classic.QueryParserBase;
 import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest;
 import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse;
 import org.elasticsearch.action.get.GetResponse;
@@ -423,25 +424,7 @@ public class TextIndexES implements TextIndex {
 
     private String parse(String fieldName, String qs, String lang) {
         //Escape special characters if any in the query string
-        qs = qs.replaceAll("\\:", "\\\\:")
-                .replaceAll("\\+", "\\\\+")
-                .replaceAll("\\-", "\\\\-")
-                .replaceAll("\\=", "\\\\=")
-                .replaceAll("\\&", "\\\\&")
-                .replaceAll("\\|", "\\\\|")
-                .replaceAll("\\>", "\\\\>")
-                .replaceAll("\\<", "\\\\<")
-                .replaceAll("\\!", "\\\\!")
-                .replaceAll("\\(", "\\\\(")
-                .replaceAll("\\)", "\\\\)")
-                .replaceAll("\\{", "\\\\{")
-                .replaceAll("\\}", "\\\\}")
-                .replaceAll("\\]", "\\\\]")
-                .replaceAll("\\[", "\\\\[")
-                .replaceAll("\\^", "\\\\^")
-                .replaceAll("\\~", "\\\\~")
-                .replaceAll("\\?", "\\\\?");
-
+        qs = QueryParserBase.escape(qs);
 
         if(fieldName != null && !fieldName.isEmpty()) {
             if(lang != null && !lang.equals("none")) {

http://git-wip-us.apache.org/repos/asf/jena/blob/77058de8/jena-text-es/src/test/java/org/apache/jena/query/text/es/it/TextIndexESIT.java
----------------------------------------------------------------------
diff --git a/jena-text-es/src/test/java/org/apache/jena/query/text/es/it/TextIndexESIT.java b/jena-text-es/src/test/java/org/apache/jena/query/text/es/it/TextIndexESIT.java
index 1e03e39..022bef5 100644
--- a/jena-text-es/src/test/java/org/apache/jena/query/text/es/it/TextIndexESIT.java
+++ b/jena-text-es/src/test/java/org/apache/jena/query/text/es/it/TextIndexESIT.java
@@ -240,6 +240,15 @@ public class TextIndexESIT extends BaseESTest {
 
     }
 
+    @Test
+    public void testBackslash() {
+        addSpecialCharacterString("label", "C:\\ title.csv save this");
+        String queryString = "C:\\ title.csv";
+        querySpecialCharacterQuery(RDFS.label.asNode(), queryString, null, 10, 1);
+        querySpecialCharacterQuery(null, queryString, null, 10, 1);
+        querySpecialCharacterQuery(RDFS.label.asNode(), queryString, "en", 10, 1);
+    }
+
 
     private void addSpecialCharacterString(String key, String value) {