import org.lemurproject.galago.core.retrieval.query.StructuredQuery; //導入方法依賴的package包/類
public SearchResult runTransformedQuery(Node root, Parameters p, boolean summarize) throws Exception {
int startAt = p.getInt("startAt");
int count = p.getInt("resultCount");
List results = retrieval.executeQuery(root, p).scoredDocuments;
SearchResult result = new SearchResult();
Set queryTerms = StructuredQuery.findQueryTerms(root);
generator.setStemming(root.toString().contains("part=stemmedPostings"));
result.transformedQuery = root;
DocumentComponents p1 = new DocumentComponents();
for (int i = startAt; i < Math.min(startAt + count, results.size()); i++) {
String identifier = results.get(i).documentName;
Document document = null;
if (summarize) {
document = getDocument(identifier, p1);
}
SearchResultItem item = new SearchResultItem();
item.rank = i + 1;
item.identifier = identifier;
item.displayTitle = identifier;
item.document = document;
if (document != null && document.metadata.containsKey("title")) {
item.displayTitle = document.metadata.get("title");
}
if (item.displayTitle != null) {
item.displayTitle = generator.highlight(item.displayTitle, queryTerms);
}
if (document != null && document.metadata.containsKey("url")) {
item.url = document.metadata.get("url");
}
if (summarize) {
item.summary = getSummary(document, queryTerms);
}
if (document != null) {
item.metadata = document.metadata;
}
item.score = results.get(i).score;
result.items.add(item);
}
return result;
}