in indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java [184:234]
protected int searchGrouped(
GroupedSearchRequest req,
Map<String, ArtifactInfoGroup> result,
Grouping grouping,
List<IndexingContext> participatingContexts,
Query query)
throws IOException {
int hitCount = 0;
for (IndexingContext context : participatingContexts) {
final IndexSearcher indexSearcher = context.acquireIndexSearcher();
try {
final TopScoreDocCollector collector = doSearchWithCeiling(req, indexSearcher, query);
if (collector.getTotalHits() > 0) {
ScoreDoc[] scoreDocs = collector.topDocs().scoreDocs;
hitCount += collector.getTotalHits();
for (ScoreDoc scoreDoc : scoreDocs) {
Document doc = indexSearcher.doc(scoreDoc.doc);
ArtifactInfo artifactInfo = IndexUtils.constructArtifactInfo(doc, context);
if (artifactInfo != null) {
artifactInfo.setRepository(context.getRepositoryId());
artifactInfo.setContext(context.getId());
if (req.getArtifactInfoFilter() != null) {
if (!req.getArtifactInfoFilter().accepts(context, artifactInfo)) {
continue;
}
}
if (req.getArtifactInfoPostprocessor() != null) {
req.getArtifactInfoPostprocessor().postprocess(context, artifactInfo);
}
if (!grouping.addArtifactInfo(result, artifactInfo)) {
// fix the hitCount accordingly
hitCount--;
}
}
}
}
} finally {
context.releaseIndexSearcher(indexSearcher);
}
}
return hitCount;
}