Author: ogrisel
Date: Fri Aug 19 14:26:17 2011
New Revision: 1159646
URL: http://svn.apache.org/viewvc?rev=1159646&view=rev
Log:
STANBOL-314: EntityHub sparql search to remote sites does not escape fulltext
search correctly
Added:
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/query/
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/query/clerezza/
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtilsTest.java
Modified:
incubator/stanbol/trunk/entityhub/query/clerezza/src/main/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtils.java
Modified:
incubator/stanbol/trunk/entityhub/query/clerezza/src/main/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtils.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/entityhub/query/clerezza/src/main/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtils.java?rev=1159646&r1=1159645&r2=1159646&view=diff
==============================================================================
---
incubator/stanbol/trunk/entityhub/query/clerezza/src/main/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtils.java
(original)
+++
incubator/stanbol/trunk/entityhub/query/clerezza/src/main/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtils.java
Fri Aug 19 14:26:17 2011
@@ -667,7 +667,7 @@ public final class SparqlQueryUtils {
* @param constraints the as returned by {@link TextConstraint#getTexts()}
* @return the full text query string
*/
- private static String createFullTextQueryString(Collection<String>
constraints) {
+ protected static String createFullTextQueryString(Collection<String>
constraints) {
StringBuilder textQuery = new StringBuilder();
boolean firstText = true;
for(String constraintText : constraints){
@@ -693,10 +693,13 @@ public final class SparqlQueryUtils {
} else {
textQuery.append(" AND ");
}
- textQuery.append('"').append(word).append('"');
+ // we need to double the backslashes because of
replaceAll takes a regular expression
+ // as input.
+ String escapedWord = word.replaceAll("\\\"", "\\\\\"");
+ textQuery.append('"').append(escapedWord).append('"');
}
}
- if(words.length>1){
+ if (words.length > 1) {
textQuery.append(')');
}
} //end if not null and not empty
Added:
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtilsTest.java
URL:
http://svn.apache.org/viewvc/incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtilsTest.java?rev=1159646&view=auto
==============================================================================
---
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtilsTest.java
(added)
+++
incubator/stanbol/trunk/entityhub/query/clerezza/src/test/java/org/apache/stanbol/entityhub/query/clerezza/SparqlQueryUtilsTest.java
Fri Aug 19 14:26:17 2011
@@ -0,0 +1,25 @@
+package org.apache.stanbol.entityhub.query.clerezza;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.Test;
+
+public class SparqlQueryUtilsTest {
+
+ @Test
+ public void testCreateFullTextQueryString() {
+ List<String> keywords = Arrays.asList("test", "keyword");
+ assertEquals("\"test\" OR \"keyword\"",
SparqlQueryUtils.createFullTextQueryString(keywords));
+
+ keywords = Arrays.asList("test keyword");
+ assertEquals("(\"test\" AND \"keyword\")",
SparqlQueryUtils.createFullTextQueryString(keywords));
+
+ keywords = Arrays.asList("'test' \"keyword\"");
+ assertEquals("(\"'test'\" AND \"\\\"keyword\\\"\")",
+ SparqlQueryUtils.createFullTextQueryString(keywords));
+ }
+
+}