mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-16 01:37: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_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_KEYWORD = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_KEYWORD);
|
||||
|
||||
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());
|
||||
final BlackboardAttribute keywordAttribute = artifact.getAttribute(TSK_KEYWORD);
|
||||
if (keywordAttribute != null) {
|
||||
accountNumbers.add(keywordAttribute.getValueString());
|
||||
}
|
||||
final BlackboardAttribute docIDs = artifact.getAttribute(TSK_KEYWORD_HIT_DOCUMENT_IDS);
|
||||
List<String> rawDocIDs = new ArrayList<>();
|
||||
if (docIDs != null) {
|
||||
|
@ -590,19 +590,9 @@ class ExtractedContentPanel extends javax.swing.JPanel {
|
||||
enableNextPageControl(false);
|
||||
enablePrevPageControl(false);
|
||||
} else {
|
||||
if (source.hasNextPage()) {
|
||||
enableNextPageControl(true);
|
||||
} else {
|
||||
enableNextPageControl(false);
|
||||
}
|
||||
|
||||
if (source.hasPreviousPage()) {
|
||||
enablePrevPageControl(true);
|
||||
} else {
|
||||
enablePrevPageControl(false);
|
||||
}
|
||||
enableNextPageControl(source.hasNextPage());
|
||||
enablePrevPageControl(source.hasPreviousPage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -613,22 +603,10 @@ class ExtractedContentPanel extends javax.swing.JPanel {
|
||||
void updateSearchControls(IndexedText source) {
|
||||
//setup search controls
|
||||
if (source != null && source.isSearchable()) {
|
||||
|
||||
updateCurrentMatchDisplay(source.currentItem());
|
||||
updateTotaMatcheslDisplay(source.getNumberHits());
|
||||
|
||||
if (source.hasNextItem() || source.hasNextPage()) {
|
||||
enableNextMatchControl(true);
|
||||
} else {
|
||||
enableNextMatchControl(false);
|
||||
}
|
||||
|
||||
if (source.hasPreviousItem() || source.hasPreviousPage()) {
|
||||
enablePrevMatchControl(true);
|
||||
} else {
|
||||
enablePrevMatchControl(false);
|
||||
}
|
||||
|
||||
enableNextMatchControl(source.hasNextItem() || source.hasNextPage());
|
||||
enablePrevMatchControl(source.hasPreviousItem() || source.hasPreviousPage());
|
||||
} else {
|
||||
enableNextMatchControl(false);
|
||||
enablePrevMatchControl(false);
|
||||
|
@ -364,19 +364,18 @@ class HighlightedText implements IndexedText {
|
||||
|
||||
@Override
|
||||
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 {
|
||||
loadPageInfo(); //inits once
|
||||
|
||||
SolrQuery q = new SolrQuery();
|
||||
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) {
|
||||
final String highlightQuery = keywords.stream()
|
||||
.map(HighlightedText::constructEscapedSolrQuery)
|
||||
@ -435,7 +434,7 @@ class HighlightedText implements IndexedText {
|
||||
|
||||
return "<html><pre>" + highlightedContent + "</pre></html>"; //NON-NLS
|
||||
} 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");
|
||||
}
|
||||
}
|
||||
|
@ -552,6 +552,8 @@ final class RegexQuery implements KeywordSearchQuery {
|
||||
attributeMap.computeIfAbsent(type, (BlackboardAttribute.Type t) -> {
|
||||
String value = matcher.group(groupName);
|
||||
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);
|
||||
}
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user