use initial snippet if available

This commit is contained in:
millmanorama 2016-11-11 12:52:44 +01:00
parent 5a8163236f
commit 30a3d007b7

View File

@ -27,6 +27,7 @@ import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.swing.SwingWorker; import javax.swing.SwingWorker;
import org.apache.commons.lang.StringUtils;
import org.netbeans.api.progress.ProgressHandle; import org.netbeans.api.progress.ProgressHandle;
import org.netbeans.api.progress.aggregate.ProgressContributor; import org.netbeans.api.progress.aggregate.ProgressContributor;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
@ -134,7 +135,8 @@ class QueryResults {
for (KeywordHit hit : getOneHitPerObject(keyword)) { for (KeywordHit hit : getOneHitPerObject(keyword)) {
String termString = keyword.getSearchTerm(); String termString = keyword.getSearchTerm();
final String snippetQuery = KeywordSearchUtil.escapeLuceneQuery(termString); final String snippetQuery = KeywordSearchUtil.escapeLuceneQuery(termString);
String snippet; String snippet = hit.getSnippet();
if (StringUtils.isBlank(snippet)) {
try { try {
snippet = LuceneQuery.querySnippet(snippetQuery, hit.getSolrObjectId(), hit.getChunkId(), !keywordSearchQuery.isLiteral(), true); snippet = LuceneQuery.querySnippet(snippetQuery, hit.getSolrObjectId(), hit.getChunkId(), !keywordSearchQuery.isLiteral(), true);
} catch (NoOpenCoreException e) { } catch (NoOpenCoreException e) {
@ -145,6 +147,7 @@ class QueryResults {
logger.log(Level.WARNING, "Error querying snippet: " + snippetQuery, e); //NON-NLS logger.log(Level.WARNING, "Error querying snippet: " + snippetQuery, e); //NON-NLS
continue; continue;
} }
}
if (snippet != null) { if (snippet != null) {
KeywordCachedArtifact writeResult = keywordSearchQuery.writeSingleFileHitsToBlackBoard(termString, hit, snippet, keywordList.getName()); KeywordCachedArtifact writeResult = keywordSearchQuery.writeSingleFileHitsToBlackBoard(termString, hit, snippet, keywordList.getName());
if (writeResult != null) { if (writeResult != null) {
@ -166,8 +169,8 @@ class QueryResults {
//group artifacts by type //group artifacts by type
.collect(Collectors.groupingBy(BlackboardArtifact::getArtifactTypeID)) .collect(Collectors.groupingBy(BlackboardArtifact::getArtifactTypeID))
//for each type send an event //for each type send an event
.forEach((typeID, artifacts) -> .forEach((typeID, artifacts)
IngestServices.getInstance().fireModuleDataEvent(new ModuleDataEvent(MODULE_NAME, BlackboardArtifact.ARTIFACT_TYPE.fromID(typeID), artifacts))); -> IngestServices.getInstance().fireModuleDataEvent(new ModuleDataEvent(MODULE_NAME, BlackboardArtifact.ARTIFACT_TYPE.fromID(typeID), artifacts)));
} }