move query escape to util class, also escape query in highlighting code

This commit is contained in:
adam-m 2011-12-27 17:37:44 -05:00
parent 32f33ed14c
commit b12d4a812c
3 changed files with 21 additions and 9 deletions

View File

@ -18,6 +18,8 @@
*/ */
package org.sleuthkit.autopsy.keywordsearch; package org.sleuthkit.autopsy.keywordsearch;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
@ -57,7 +59,9 @@ class HighlightedMatchesSource implements MarkupSource {
public String getMarkup() { public String getMarkup() {
SolrQuery q = new SolrQuery(); SolrQuery q = new SolrQuery();
q.setQuery(solrQuery); final String queryEscaped = KeywordSearchUtil.escapeLuceneQuery(solrQuery);
q.setQuery(queryEscaped);
q.addFilterQuery("id:" + content.getId()); q.addFilterQuery("id:" + content.getId());
q.addHighlightField("content"); q.addHighlightField("content");
q.setHighlightSimplePre(HIGHLIGHT_PRE); q.setHighlightSimplePre(HIGHLIGHT_PRE);

View File

@ -1,5 +1,7 @@
package org.sleuthkit.autopsy.keywordsearch; package org.sleuthkit.autopsy.keywordsearch;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.sleuthkit.datamodel.Directory; import org.sleuthkit.datamodel.Directory;
@ -32,4 +34,16 @@ public class KeywordSearchUtil {
} }
return dirName; 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;
}
} }

View File

@ -64,14 +64,8 @@ public class LuceneQuery implements KeywordSearchQuery {
Server.Core solrCore = KeywordSearch.getServer().getCore(); Server.Core solrCore = KeywordSearch.getServer().getCore();
SolrQuery q = new SolrQuery(); SolrQuery q = new SolrQuery();
String queryEscaped = null;;
try { final String queryEscaped = KeywordSearchUtil.escapeLuceneQuery(query);
queryEscaped = URLEncoder.encode(query, "UTF-8");
}
catch (UnsupportedEncodingException ex) {
logger.log(Level.SEVERE, "Error escaping URL query, should not happen.", ex);
queryEscaped = query;
}
q.setQuery(queryEscaped); q.setQuery(queryEscaped);
q.setRows(ROWS_PER_FETCH); q.setRows(ROWS_PER_FETCH);
q.setFields("id"); q.setFields("id");