From 09c5b3ccde58f7ad01f8e01e81e0c7abe7b88396 Mon Sep 17 00:00:00 2001 From: esaunders Date: Tue, 6 Dec 2016 11:17:12 -0500 Subject: [PATCH] Wrap keyword in quotes to make highlighting work when keyword hits are accessed through the tree. --- .../autopsy/keywordsearch/HighlightedText.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedText.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedText.java index fe87ac26cc..fd9a497b97 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedText.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/HighlightedText.java @@ -84,7 +84,7 @@ class HighlightedText implements IndexedText, TextMarkupLookup { //when the results are not known and need to requery to get hits HighlightedText(long objectId, String solrQuery, boolean isRegex, String originalQuery) { - this(objectId, solrQuery, isRegex); + this(objectId, KeywordSearchUtil.quoteQuery(solrQuery), isRegex); this.originalQuery = originalQuery; } @@ -132,13 +132,16 @@ class HighlightedText implements IndexedText, TextMarkupLookup { * need to perform the search to get the highlights. */ if (hits == null) { - String queryStr = KeywordSearchUtil.escapeLuceneQuery(this.keywordHitQuery); - if (isRegex) { - //use white-space sep. field to get exact matches only of regex query result - queryStr = Server.Schema.CONTENT_WS + ":" + "\"" + queryStr + "\""; - } + // I don't undertand how we could get into this code with a regex query. + // Won't all regex queries have been resolved to actual literal keyword hits + // by the time we attempt to load page content? EGS. +// String queryStr = KeywordSearchUtil.escapeLuceneQuery(this.keywordHitQuery); +// if (isRegex) { +// //use white-space sep. field to get exact matches only of regex query result +// queryStr = Server.Schema.CONTENT_WS + ":" + "\"" + queryStr + "\""; +// } - Keyword keywordQuery = new Keyword(queryStr, !isRegex); + Keyword keywordQuery = new Keyword(this.keywordHitQuery, !isRegex); List keywords = new ArrayList<>(); keywords.add(keywordQuery); KeywordSearchQuery chunksQuery = new LuceneQuery(new KeywordList(keywords), keywordQuery);