diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java index 88eaffbed1c7d0070bf34daa9c51f2d04eb58d60..994dfb9161e828cac501a40287b46144a08e0616 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Ingester.java @@ -36,6 +36,8 @@ import org.sleuthkit.autopsy.healthmonitor.TimingMetric; import org.sleuthkit.autopsy.ingest.IngestJobContext; import org.sleuthkit.autopsy.keywordsearch.Chunker.Chunk; +import org.sleuthkit.autopsy.textextractors.TextExtractor; +import org.sleuthkit.autopsy.textextractors.TextExtractorFactory; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.Content; @@ -203,71 +205,69 @@ < T extends SleuthkitVisitableItem> boolean indexAndSearchStrings(Reader sourceR // TODO (JIRA-3118): Cancelled text indexing does not propagate cancellation to clients private < T extends SleuthkitVisitableItem> boolean indexTextAndSearch(Reader sourceReader, long sourceID, String sourceName, T source, IngestJobContext context, boolean doLanguageDetection, boolean indexIntoSolr, List<String> keywordListNames) throws Ingester.IngesterException { int numChunks = 0; //unknown until chunking is done - + Map<String, String> contentFields = Collections.unmodifiableMap(getContentFields(source)); Optional<Language> language = Optional.empty(); InlineSearcher searcher = new InlineSearcher(keywordListNames); //Get a reader for the content of the given source try (BufferedReader reader = new BufferedReader(sourceReader)) { Chunker chunker = new Chunker(reader); - + while (chunker.hasNext()) { if (context != null && context.fileIngestIsCancelled()) { logger.log(Level.INFO, "File ingest cancelled. Cancelling keyword search indexing of {0}", sourceName); return false; } - + Chunk chunk = chunker.next(); + String chunkId = ""; + if (indexIntoSolr) { + Map<String, Object> fields = new HashMap<>(contentFields); + chunkId = Server.getChunkIdString(sourceID, numChunks + 1); + fields.put(Server.Schema.ID.toString(), chunkId); + fields.put(Server.Schema.CHUNK_SIZE.toString(), String.valueOf(chunk.getBaseChunkLength())); + + if (doLanguageDetection) { + int size = Math.min(chunk.getBaseChunkLength(), LANGUAGE_DETECTION_STRING_SIZE); + language = languageSpecificContentIndexingHelper.detectLanguageIfNeeded(chunk.toString().substring(0, size)); + + // only do language detection on the first chunk of the document + doLanguageDetection = false; + } + language.ifPresent(lang -> languageSpecificContentIndexingHelper.updateLanguageSpecificFields(fields, chunk, lang)); + try { + //add the chunk text to Solr index + indexChunk(chunk.toString(), chunk.geLowerCasedChunk(), sourceName, fields); + // add mini chunk when there's a language specific field + if (chunker.hasNext() && language.isPresent()) { + languageSpecificContentIndexingHelper.indexMiniChunk(chunk, sourceName, new HashMap<>(contentFields), chunkId, language.get()); + } + numChunks++; + } catch (Ingester.IngesterException ingEx) { + logger.log(Level.WARNING, "Ingester had a problem with extracted string from file '" //NON-NLS + + sourceName + "' (id: " + sourceID + ").", ingEx);//NON-NLS + + throw ingEx; //need to rethrow to signal error and move on + } + } if(keywordListNames != null) { searcher.searchChunk(chunk); } - - if(!indexIntoSolr) { - continue; - } - - Map<String, Object> fields = new HashMap<>(contentFields); - String chunkId = Server.getChunkIdString(sourceID, numChunks + 1); - fields.put(Server.Schema.ID.toString(), chunkId); - fields.put(Server.Schema.CHUNK_SIZE.toString(), String.valueOf(chunk.getBaseChunkLength())); - - if (doLanguageDetection) { - int size = Math.min(chunk.getBaseChunkLength(), LANGUAGE_DETECTION_STRING_SIZE); - language = languageSpecificContentIndexingHelper.detectLanguageIfNeeded(chunk.toString().substring(0, size)); - - // only do language detection on the first chunk of the document - doLanguageDetection = false; - } - language.ifPresent(lang -> languageSpecificContentIndexingHelper.updateLanguageSpecificFields(fields, chunk, lang)); - try { - //add the chunk text to Solr index - indexChunk(chunk.toString(), chunk.geLowerCasedChunk(), sourceName, fields); - // add mini chunk when there's a language specific field - if (chunker.hasNext() && language.isPresent()) { - languageSpecificContentIndexingHelper.indexMiniChunk(chunk, sourceName, new HashMap<>(contentFields), chunkId, language.get()); - } - numChunks++; - } catch (Ingester.IngesterException ingEx) { - logger.log(Level.WARNING, "Ingester had a problem with extracted string from file '" //NON-NLS - + sourceName + "' (id: " + sourceID + ").", ingEx);//NON-NLS - - throw ingEx; //need to rethrow to signal error and move on - } } if (chunker.hasException()) { logger.log(Level.WARNING, "Error chunking content from " + sourceID + ": " + sourceName, chunker.getException()); return false; - } - - searcher.makeArtifacts((Content)source, context, sourceID); + } + + searcher.makeArtifacts((Content) source, context, sourceID); } catch (Exception ex) { logger.log(Level.WARNING, "Unexpected error, can't read content stream from " + sourceID + ": " + sourceName, ex);//NON-NLS return false; } finally { if (context != null && context.fileIngestIsCancelled()) { return false; - } else if(indexIntoSolr){ + } else if (indexIntoSolr) { Map<String, Object> fields = new HashMap<>(contentFields); //after all chunks, index just the meta data, including the numChunks, of the parent file fields.put(Server.Schema.NUM_CHUNKS.toString(), Integer.toString(numChunks)); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/InlineSearcher.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/InlineSearcher.java index f8313ace377c63788b5a463f3a67f3db5520dec0..9cfef448121497cf91966a9a93153fddeedf0045 100755 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/InlineSearcher.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/InlineSearcher.java @@ -77,11 +77,17 @@ void searchChunk(Chunk chunk) throws TskCoreException { keywordHits.addAll(createKeywordHits(chunk, originalKeyword)); } } else { - String REGEX_FIND_WORD="(?i).*?\\b%s\\b.*?"; + String REGEX_FIND_WORD="\\b\\W*%s\\W*\\b"; //"[\\w[\\.']]*%s[\\w[\\.']]*"; //"(?i).*?\\b%s\\b.*?"; String regex=String.format(REGEX_FIND_WORD, Pattern.quote(originalKeyword.getSearchTerm().toLowerCase())); - if(chunk.geLowerCasedChunk().matches(regex)) { +// if(chunk.geLowerCasedChunk().matches(regex)) { +// keywordHits.addAll(createKeywordHits(chunk, originalKeyword)); +// } + + Pattern pattern = Pattern.compile(regex, java.util.regex.Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(chunk.geLowerCasedChunk()); + if (matcher.find()) { keywordHits.addAll(createKeywordHits(chunk, originalKeyword)); - } + } } } else { String regex = originalKeyword.getSearchTerm(); @@ -152,7 +158,12 @@ private List<KeywordHit> createKeywordHits(Chunk chunk, Keyword originalKeyword) * and possessives (e.g. hacker's). This obviously works for English * but is probably not sufficient for other languages. */ - searchPattern = "[\\w[\\.']]*" + java.util.regex.Pattern.quote(keywordString.toLowerCase()) + "[\\w[\\.']]*"; + if(!originalKeyword.searchTermIsWholeWord()) { + searchPattern = "[\\w[\\.']]*" + java.util.regex.Pattern.quote(keywordString.toLowerCase()) + "[\\w[\\.']]*"; + } else { + String REGEX_FIND_WORD="\\b\\W*%s\\W*\\b"; + searchPattern=String.format(REGEX_FIND_WORD, Pattern.quote(originalKeyword.getSearchTerm().toLowerCase())); + } } else { searchPattern = keywordString; } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java index 7b0caa6c76d4013aebc782c46caae195802be65b..9dcd3984dd3f0fc74a084e8de0545aec841f8776 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchIngestModule.java @@ -38,6 +38,7 @@ import java.util.logging.Level; import java.util.stream.Collectors; import org.apache.tika.mime.MimeTypes; +import org.openide.util.Exceptions; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.NbBundle.Messages; @@ -688,8 +689,7 @@ private boolean extractStringsAndIndex(AbstractFile aFile) { if (context.fileIngestIsCancelled()) { return true; } - TextExtractor stringsExtractor = TextExtractorFactory.getStringsExtractor(aFile, stringsExtractionContext); - Reader extractedTextReader = stringsExtractor.getReader(); + Reader extractedTextReader = KeywordSearchUtil.getReader(aFile, stringsExtractionContext); if (Ingester.getDefault().indexAndSearchStrings(extractedTextReader, aFile.getId(), aFile.getName(), aFile, KeywordSearchIngestModule.this.context, settings.isIndexToSolrEnabled(), settings.getNamesOfEnabledKeyWordLists())) { putIngestStatus(jobId, aFile.getId(), IngestStatus.STRINGS_INGESTED); return true; @@ -698,11 +698,11 @@ private boolean extractStringsAndIndex(AbstractFile aFile) { putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_TEXTEXTRACT); return false; } - } catch (IngesterException | TextExtractor.InitReaderException ex) { + } catch (IngesterException | TextExtractor.InitReaderException | TextExtractorFactory.NoTextExtractorFound ex) { logger.log(Level.WARNING, "Failed to extract strings and ingest, file '" + aFile.getName() + "' (id: " + aFile.getId() + ").", ex); //NON-NLS putIngestStatus(jobId, aFile.getId(), IngestStatus.SKIPPED_ERROR_INDEXING); return false; - } + } } /** diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java index d828f14585d0ee60f06ee0c142b9efeef847b5df..e5f39885a5416876735536e1c8d8e6481a169789 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KeywordSearchUtil.java @@ -20,10 +20,18 @@ import java.awt.Component; import java.io.File; +import java.io.Reader; import java.util.regex.Matcher; import org.sleuthkit.autopsy.coreutils.Logger; import javax.swing.JOptionPane; +import org.openide.util.Lookup; import org.openide.windows.WindowManager; +import org.sleuthkit.autopsy.textextractors.TextExtractor; +import org.sleuthkit.autopsy.textextractors.TextExtractorFactory; +import org.sleuthkit.datamodel.AbstractFile; +import org.sleuthkit.datamodel.BlackboardArtifact; +import org.sleuthkit.datamodel.Content; +import org.sleuthkit.datamodel.TskCoreException; class KeywordSearchUtil { @@ -181,4 +189,40 @@ static boolean isXMLList(String absPath) { //TODO: make this more robust, if necessary return new File(absPath).getName().endsWith(".xml"); //NON-NLS } + + static Reader getReader(Content content) throws TextExtractorFactory.NoTextExtractorFound, TextExtractor.InitReaderException{ + return getReader(content, null); + } + + static Reader getReader(Content content, Lookup stringsExtractionContext) throws TextExtractorFactory.NoTextExtractorFound, TextExtractor.InitReaderException{ + Reader reader = null; + if (content instanceof BlackboardArtifact) { + BlackboardArtifact artifact = (BlackboardArtifact) content; + if (artifact.getArtifactID() > 0) { + /* + * Artifact indexing is only supported for artifacts that use + * negative artifact ids to avoid overlapping with the object + * ids of other types of Content. + */ + return null; + } + TextExtractor blackboardExtractor = TextExtractorFactory.getExtractor(content, null); + reader = blackboardExtractor.getReader(); + + } else if (content instanceof AbstractFile) { + TextExtractor stringsExtractor = TextExtractorFactory.getStringsExtractor( content, stringsExtractionContext); + reader = stringsExtractor.getReader(); + } else { + try { + TextExtractor contentExtractor = TextExtractorFactory.getExtractor(content, null); + reader = contentExtractor.getReader(); + } catch (TextExtractorFactory.NoTextExtractorFound | TextExtractor.InitReaderException ex) { + // Try the StringsTextExtractor if Tika extractions fails. + TextExtractor stringsExtractor = TextExtractorFactory.getStringsExtractor(content, null); + reader = stringsExtractor.getReader(); + } + } + + return reader; + } } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsAnalysisResultIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsAnalysisResultIngestModule.java index 26ac0180675072fda932c925a395462a86af84b4..886b45b3a2cec346d6e6c70651b469edc826ac4e 100755 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsAnalysisResultIngestModule.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsAnalysisResultIngestModule.java @@ -18,6 +18,7 @@ */ package org.sleuthkit.autopsy.keywordsearch; +import java.io.Reader; import java.util.logging.Level; import org.openide.util.Lookup; import org.sleuthkit.autopsy.coreutils.Logger; @@ -25,6 +26,8 @@ import org.sleuthkit.autopsy.ingest.IngestJobContext; import org.sleuthkit.autopsy.ingest.IngestModule; import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchService; +import org.sleuthkit.autopsy.textextractors.TextExtractor; +import org.sleuthkit.autopsy.textextractors.TextExtractorFactory; import org.sleuthkit.datamodel.AnalysisResult; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.TskCoreException; @@ -40,7 +43,6 @@ public class KwsAnalysisResultIngestModule implements AnalysisResultIngestModule private static final Logger LOGGER = Logger.getLogger(KeywordSearchIngestModule.class.getName()); private static final int TSK_KEYWORD_HIT_TYPE_ID = BlackboardArtifact.Type.TSK_KEYWORD_HIT.getTypeID(); private IngestJobContext context; - private KeywordSearchService searchService; private final KeywordSearchJobSettings settings; KwsAnalysisResultIngestModule(KeywordSearchJobSettings settings) { @@ -50,16 +52,24 @@ public class KwsAnalysisResultIngestModule implements AnalysisResultIngestModule @Override public void startUp(IngestJobContext context) throws IngestModule.IngestModuleException { this.context = context; - searchService = Lookup.getDefault().lookup(KeywordSearchService.class); } @Override public IngestModule.ProcessResult process(AnalysisResult result) { try { if (result.getType().getTypeID() != TSK_KEYWORD_HIT_TYPE_ID) { - searchService.index(result); + Ingester ingester = Ingester.getDefault(); + Reader blackboardExtractedTextReader = KeywordSearchUtil.getReader(result); + String sourceName = result.getDisplayName() + "_" + result.getArtifactID(); + ingester.indexMetaDataOnly(result, sourceName); + ingester.indexTextAndSearch(blackboardExtractedTextReader, + result.getArtifactID(), + sourceName, result, + context, + settings.isIndexToSolrEnabled(), + settings.getNamesOfEnabledKeyWordLists()); } - } catch (TskCoreException ex) { + } catch (TskCoreException | TextExtractorFactory.NoTextExtractorFound | TextExtractor.InitReaderException | Ingester.IngesterException ex) { LOGGER.log(Level.SEVERE, String.format("Error indexing analysis result '%s' (job ID=%d)", result, context.getJobId()), ex); //NON-NLS return IngestModule.ProcessResult.ERROR; } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsDataArtifactIngestModule.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsDataArtifactIngestModule.java index 74e81801f618844730fccee753602b3a4fa23d77..4f0659b0e99a579d3202cd0337f22e1fbcddfb45 100755 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsDataArtifactIngestModule.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/KwsDataArtifactIngestModule.java @@ -18,12 +18,16 @@ */ package org.sleuthkit.autopsy.keywordsearch; +import java.io.Reader; import java.util.logging.Level; +import org.openide.util.Exceptions; import org.openide.util.Lookup; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.ingest.DataArtifactIngestModule; import org.sleuthkit.autopsy.ingest.IngestJobContext; import org.sleuthkit.autopsy.keywordsearchservice.KeywordSearchService; +import org.sleuthkit.autopsy.textextractors.TextExtractor; +import org.sleuthkit.autopsy.textextractors.TextExtractorFactory; import org.sleuthkit.datamodel.BlackboardArtifact; import org.sleuthkit.datamodel.DataArtifact; import org.sleuthkit.datamodel.TskCoreException; @@ -39,7 +43,6 @@ public class KwsDataArtifactIngestModule implements DataArtifactIngestModule { private static final Logger LOGGER = Logger.getLogger(KeywordSearchIngestModule.class.getName()); private static final int TSK_ASSOCIATED_OBJECT_TYPE_ID = BlackboardArtifact.Type.TSK_ASSOCIATED_OBJECT.getTypeID(); private IngestJobContext context; - private KeywordSearchService searchService; private final KeywordSearchJobSettings settings; KwsDataArtifactIngestModule(KeywordSearchJobSettings settings) { @@ -49,19 +52,27 @@ public class KwsDataArtifactIngestModule implements DataArtifactIngestModule { @Override public void startUp(IngestJobContext context) throws IngestModuleException { this.context = context; - searchService = Lookup.getDefault().lookup(KeywordSearchService.class); } @Override public ProcessResult process(DataArtifact artifact) { try { if (artifact.getType().getTypeID() != TSK_ASSOCIATED_OBJECT_TYPE_ID) { - searchService.index(artifact); + Ingester ingester = Ingester.getDefault(); + Reader blackboardExtractedTextReader = KeywordSearchUtil.getReader(artifact); + String sourceName = artifact.getDisplayName() + "_" + artifact.getArtifactID(); + ingester.indexMetaDataOnly(artifact, sourceName); + ingester.indexTextAndSearch(blackboardExtractedTextReader, + artifact.getArtifactID(), + sourceName, artifact, + context, + settings.isIndexToSolrEnabled(), + settings.getNamesOfEnabledKeyWordLists()); } - } catch (TskCoreException ex) { + } catch (TskCoreException | TextExtractorFactory.NoTextExtractorFound | TextExtractor.InitReaderException | Ingester.IngesterException ex) { LOGGER.log(Level.SEVERE, String.format("Error indexing data artifact '%s' (job ID=%d)", artifact, context.getJobId()), ex); //NON-NLS return ProcessResult.ERROR; - } + } return ProcessResult.OK; } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java index b68bb7d82e24f928407fe4355e41d0a40b139ada..3d830489cca7384daa5063608a33f8e023e184fe 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/RegexQuery.java @@ -589,7 +589,11 @@ public static BlackboardArtifact createKeywordHitArtifact(Content content, Keyw ); if (originalKW.searchTermIsLiteral()) { - attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_KEYWORD_SEARCH_TYPE, MODULE_NAME, KeywordSearch.QueryType.SUBSTRING.ordinal())); + if(!originalKW.searchTermIsWholeWord()) { + attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_KEYWORD_SEARCH_TYPE, MODULE_NAME, KeywordSearch.QueryType.SUBSTRING.ordinal())); + } else { + attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_KEYWORD_SEARCH_TYPE, MODULE_NAME, KeywordSearch.QueryType.LITERAL.ordinal())); + } } else { attributes.add(new BlackboardAttribute(ATTRIBUTE_TYPE.TSK_KEYWORD_SEARCH_TYPE, MODULE_NAME, KeywordSearch.QueryType.REGEX.ordinal())); } diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java index 2d56a938df19973c2c8d0665da59aff8e96eb023..7613538764c418b686fc40e123fbe804ef93795c 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/SolrSearchService.java @@ -93,8 +93,7 @@ public void index(Content content) throws TskCoreException { return; } try { - TextExtractor blackboardExtractor = TextExtractorFactory.getExtractor(content, null); - Reader blackboardExtractedTextReader = blackboardExtractor.getReader(); + Reader blackboardExtractedTextReader = KeywordSearchUtil.getReader(content); String sourceName = artifact.getDisplayName() + "_" + artifact.getArtifactID(); ingester.indexMetaDataOnly(artifact, sourceName); ingester.indexTextAndSearch(blackboardExtractedTextReader, artifact.getArtifactID(), sourceName, content, null, true, null); @@ -103,18 +102,11 @@ public void index(Content content) throws TskCoreException { } } else { try { - TextExtractor contentExtractor = TextExtractorFactory.getExtractor(content, null); - Reader contentExtractedTextReader = contentExtractor.getReader(); - ingester.indexTextAndSearch(contentExtractedTextReader, content.getId(), content.getName(), content, null, true, null); + + Reader reader = KeywordSearchUtil.getReader(content); + ingester.indexTextAndSearch(reader, content.getId(), content.getName(), content, null, true, null); } catch (TextExtractorFactory.NoTextExtractorFound | Ingester.IngesterException | TextExtractor.InitReaderException ex) { - try { - // Try the StringsTextExtractor if Tika extractions fails. - TextExtractor stringsExtractor = TextExtractorFactory.getStringsExtractor(content, null); - Reader stringsExtractedTextReader = stringsExtractor.getReader(); - ingester.indexStrings(stringsExtractedTextReader, content.getId(), content.getName(), content, null, true); - } catch (Ingester.IngesterException | TextExtractor.InitReaderException ex1) { - throw new TskCoreException("Error indexing content", ex1); - } + throw new TskCoreException("Error indexing content", ex); } // only do a Solr commit if ingest is not running. If ingest is running, the changes will // be committed via a periodic commit or via final commit after the ingest job has finished. diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java index 088af9f4b2e876262c86ecabdb341493d9020aeb..4dfcdd2193fc35b68785b9e634436c4a08081438 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/ExtractRegistry.java @@ -422,13 +422,13 @@ private void analyzeRegistryFiles(long ingestJobId) { "RegRipper " + regFile.getUniquePath(), regFile); //NON-NLS // Index the report content so that it will be available for keyword search. - KeywordSearchService searchService = Lookup.getDefault().lookup(KeywordSearchService.class); - if (null == searchService) { - logger.log(Level.WARNING, "Keyword search service not found. Report will not be indexed"); - } else { - searchService.index(report); - report.close(); - } +// KeywordSearchService searchService = Lookup.getDefault().lookup(KeywordSearchService.class); +// if (null == searchService) { +// logger.log(Level.WARNING, "Keyword search service not found. Report will not be indexed"); +// } else { +// searchService.index(report); +// report.close(); +// } } catch (TskCoreException e) { this.addErrorMessage("Error adding regripper output as Autopsy report: " + e.getLocalizedMessage()); //NON-NLS }