diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java index 1afd097526..d263c35526 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedMatchesSource.java @@ -18,6 +18,8 @@ */ package org.sleuthkit.autopsy.keywordsearch; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -57,7 +59,9 @@ class HighlightedMatchesSource implements MarkupSource { public String getMarkup() { SolrQuery q = new SolrQuery(); - q.setQuery(solrQuery); + final String queryEscaped = KeywordSearchUtil.escapeLuceneQuery(solrQuery); + + q.setQuery(queryEscaped); q.addFilterQuery("id:" + content.getId()); q.addHighlightField("content"); q.setHighlightSimplePre(HIGHLIGHT_PRE); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java index b53dedbf02..0ce8f2fadc 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java @@ -1,5 +1,7 @@ package org.sleuthkit.autopsy.keywordsearch; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.logging.Level; import java.util.logging.Logger; import org.sleuthkit.datamodel.Directory; @@ -32,4 +34,16 @@ public class KeywordSearchUtil { } return dirName; } + + public static String escapeLuceneQuery(String query) { + String queryEscaped = null; + try { + queryEscaped = URLEncoder.encode(query, "UTF-8"); + } + catch (UnsupportedEncodingException ex) { + logger.log(Level.SEVERE, "Error escaping URL query, should not happen.", ex); + queryEscaped = query; + } + return queryEscaped; + } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/LuceneQuery.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/LuceneQuery.java index 58f46ded52..b3af7aa7cc 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/LuceneQuery.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/LuceneQuery.java @@ -64,14 +64,8 @@ public class LuceneQuery implements KeywordSearchQuery { Server.Core solrCore = KeywordSearch.getServer().getCore(); SolrQuery q = new SolrQuery(); - String queryEscaped = null;; - try { - queryEscaped = URLEncoder.encode(query, "UTF-8"); - } - catch (UnsupportedEncodingException ex) { - logger.log(Level.SEVERE, "Error escaping URL query, should not happen.", ex); - queryEscaped = query; - } + + final String queryEscaped = KeywordSearchUtil.escapeLuceneQuery(query); q.setQuery(queryEscaped); q.setRows(ROWS_PER_FETCH); q.setFields("id");