mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-16 17:57:43 +00:00
fix highlighting of accounts in ad-hoc searches and when they have spaces or - in them
This commit is contained in:
parent
ad5c00c7c4
commit
b7439abfaa
@ -66,6 +66,7 @@ class AccountsText implements IndexedText {
|
|||||||
private static final BlackboardAttribute.Type TSK_KEYWORD_SEARCH_DOCUMENT_ID = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD_SEARCH_DOCUMENT_ID);
|
private static final BlackboardAttribute.Type TSK_KEYWORD_SEARCH_DOCUMENT_ID = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD_SEARCH_DOCUMENT_ID);
|
||||||
private static final BlackboardAttribute.Type TSK_KEYWORD_HIT_DOCUMENT_IDS = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD_HIT_DOCUMENT_IDS);
|
private static final BlackboardAttribute.Type TSK_KEYWORD_HIT_DOCUMENT_IDS = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD_HIT_DOCUMENT_IDS);
|
||||||
private static final BlackboardAttribute.Type TSK_CARD_NUMBER = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_CARD_NUMBER);
|
private static final BlackboardAttribute.Type TSK_CARD_NUMBER = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_CARD_NUMBER);
|
||||||
|
private static final BlackboardAttribute.Type TSK_KEYWORD = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD);
|
||||||
|
|
||||||
private static final String FIELD = Server.Schema.CONTENT_STR.toString();
|
private static final String FIELD = Server.Schema.CONTENT_STR.toString();
|
||||||
|
|
||||||
@ -233,6 +234,10 @@ class AccountsText implements IndexedText {
|
|||||||
}
|
}
|
||||||
|
|
||||||
accountNumbers.add(artifact.getAttribute(TSK_CARD_NUMBER).getValueString());
|
accountNumbers.add(artifact.getAttribute(TSK_CARD_NUMBER).getValueString());
|
||||||
|
final BlackboardAttribute keywordAttribute = artifact.getAttribute(TSK_KEYWORD);
|
||||||
|
if (keywordAttribute != null) {
|
||||||
|
accountNumbers.add(keywordAttribute.getValueString());
|
||||||
|
}
|
||||||
final BlackboardAttribute docIDs = artifact.getAttribute(TSK_KEYWORD_HIT_DOCUMENT_IDS);
|
final BlackboardAttribute docIDs = artifact.getAttribute(TSK_KEYWORD_HIT_DOCUMENT_IDS);
|
||||||
List<String> rawDocIDs = new ArrayList<>();
|
List<String> rawDocIDs = new ArrayList<>();
|
||||||
if (docIDs != null) {
|
if (docIDs != null) {
|
||||||
|
@ -590,19 +590,9 @@ class ExtractedContentPanel extends javax.swing.JPanel {
|
|||||||
enableNextPageControl(false);
|
enableNextPageControl(false);
|
||||||
enablePrevPageControl(false);
|
enablePrevPageControl(false);
|
||||||
} else {
|
} else {
|
||||||
if (source.hasNextPage()) {
|
enableNextPageControl(source.hasNextPage());
|
||||||
enableNextPageControl(true);
|
enablePrevPageControl(source.hasPreviousPage());
|
||||||
} else {
|
|
||||||
enableNextPageControl(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (source.hasPreviousPage()) {
|
|
||||||
enablePrevPageControl(true);
|
|
||||||
} else {
|
|
||||||
enablePrevPageControl(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -613,22 +603,10 @@ class ExtractedContentPanel extends javax.swing.JPanel {
|
|||||||
void updateSearchControls(IndexedText source) {
|
void updateSearchControls(IndexedText source) {
|
||||||
//setup search controls
|
//setup search controls
|
||||||
if (source != null && source.isSearchable()) {
|
if (source != null && source.isSearchable()) {
|
||||||
|
|
||||||
updateCurrentMatchDisplay(source.currentItem());
|
updateCurrentMatchDisplay(source.currentItem());
|
||||||
updateTotaMatcheslDisplay(source.getNumberHits());
|
updateTotaMatcheslDisplay(source.getNumberHits());
|
||||||
|
enableNextMatchControl(source.hasNextItem() || source.hasNextPage());
|
||||||
if (source.hasNextItem() || source.hasNextPage()) {
|
enablePrevMatchControl(source.hasPreviousItem() || source.hasPreviousPage());
|
||||||
enableNextMatchControl(true);
|
|
||||||
} else {
|
|
||||||
enableNextMatchControl(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (source.hasPreviousItem() || source.hasPreviousPage()) {
|
|
||||||
enablePrevMatchControl(true);
|
|
||||||
} else {
|
|
||||||
enablePrevMatchControl(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
enableNextMatchControl(false);
|
enableNextMatchControl(false);
|
||||||
enablePrevMatchControl(false);
|
enablePrevMatchControl(false);
|
||||||
|
@ -364,19 +364,18 @@ class HighlightedText implements IndexedText {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getText() {
|
public String getText() {
|
||||||
String contentIdStr = Long.toString(this.objectId);
|
|
||||||
if (hasChunks) {
|
|
||||||
final String chunkID = Integer.toString(this.currentPage);
|
|
||||||
contentIdStr += "0".equals(chunkID) ? "" : "_" + chunkID;
|
|
||||||
}
|
|
||||||
final String filterQuery = Server.Schema.ID.toString() + ":" + KeywordSearchUtil.escapeLuceneQuery(contentIdStr);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
loadPageInfo(); //inits once
|
loadPageInfo(); //inits once
|
||||||
|
|
||||||
SolrQuery q = new SolrQuery();
|
SolrQuery q = new SolrQuery();
|
||||||
q.setShowDebugInfo(DEBUG); //debug
|
q.setShowDebugInfo(DEBUG); //debug
|
||||||
|
|
||||||
|
String contentIdStr = Long.toString(this.objectId);
|
||||||
|
if (hasChunks) {
|
||||||
|
final String chunkID = Integer.toString(this.currentPage);
|
||||||
|
contentIdStr += "0".equals(chunkID) ? "" : "_" + chunkID;
|
||||||
|
}
|
||||||
|
final String filterQuery = Server.Schema.ID.toString() + ":" + KeywordSearchUtil.escapeLuceneQuery(contentIdStr);
|
||||||
if (isLiteral) {
|
if (isLiteral) {
|
||||||
final String highlightQuery = keywords.stream()
|
final String highlightQuery = keywords.stream()
|
||||||
.map(HighlightedText::constructEscapedSolrQuery)
|
.map(HighlightedText::constructEscapedSolrQuery)
|
||||||
@ -435,7 +434,7 @@ class HighlightedText implements IndexedText {
|
|||||||
|
|
||||||
return "<html><pre>" + highlightedContent + "</pre></html>"; //NON-NLS
|
return "<html><pre>" + highlightedContent + "</pre></html>"; //NON-NLS
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
logger.log(Level.WARNING, "Error getting highlighted text for " + contentIdStr, ex); //NON-NLS
|
logger.log(Level.WARNING, "Error getting highlighted text for " + objectId, ex); //NON-NLS
|
||||||
return NbBundle.getMessage(this.getClass(), "HighlightedMatchesSource.getMarkup.queryFailedMsg");
|
return NbBundle.getMessage(this.getClass(), "HighlightedMatchesSource.getMarkup.queryFailedMsg");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -552,6 +552,8 @@ final class RegexQuery implements KeywordSearchQuery {
|
|||||||
attributeMap.computeIfAbsent(type, (BlackboardAttribute.Type t) -> {
|
attributeMap.computeIfAbsent(type, (BlackboardAttribute.Type t) -> {
|
||||||
String value = matcher.group(groupName);
|
String value = matcher.group(groupName);
|
||||||
if (attrType.equals(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_CARD_NUMBER)) {
|
if (attrType.equals(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_CARD_NUMBER)) {
|
||||||
|
attributeMap.put(new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD),
|
||||||
|
new BlackboardAttribute(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD, MODULE_NAME, value));
|
||||||
value = CharMatcher.anyOf(" -").removeFrom(value);
|
value = CharMatcher.anyOf(" -").removeFrom(value);
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotBlank(value)) {
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user