public WikiBrainScoreDoc[] search(Query query, Language language, int hitCount, Filter filter, boolean resolveWpIds) {
if (!searchers.containsKey(language)) throw new IllegalArgumentException("Unknown language: " + language);
try {
this.hitCount = hitCount;
ScoreDoc[] scoreDocs = searchers.get(language).search(query, filter, hitCount).scoreDocs;
WikiBrainScoreDoc[] wikibrainScoreDocs = new WikiBrainScoreDoc[scoreDocs.length];
for (int i = 0; i < scoreDocs.length; i++) {
ScoreDoc scoreDoc = scoreDocs[i];
int wpId = resolveWpIds ? getLocalIdFromDocId(scoreDoc.doc, language) : -1;
wikibrainScoreDocs[i] = new WikiBrainScoreDoc(scoreDoc.doc, wpId, scoreDoc.score);
}
return wikibrainScoreDocs;
} catch (IOException e) {
throw new RuntimeException(e);
}
}