我只是编写一个solr插件(SearchComponent),并希望迭代为查询找到的所有文档。这是我在流程方法中的代码的一部分:
// Searcher to search a document
SolrIndexSearcher searcher = rb.req.getSearcher();
// Getting the list of documents found for the query
DocList docs = rb.getResults().docList;
// Return if no results are found for the query
if (docs == null || docs.size() == 0) {
return;
}
// Get the iterator for the documents that will be returned
DocIterator iterator = docs.iterator();
// Iterate over all documents and count occurrences
for (int i = 0; i < docs.size(); i++) {
try {
// Getting the current document ID
int docid = iterator.nextDoc();
// Fetch the document from the searcher
Document doc = searcher.doc(docid);
// do stuff
} catch (Exception e) {
LOGGER.error(e.getMessage());
}
}
现在我找到了一种方法,我可以迭代所有将返回的文件,即如果找到1300个文件用于查询,我只返回20,我现在只用这种方法迭代20多个。我有可能获得全套文件(1300)吗?
答案 0 :(得分:2)
有可能这样做。您使用的DocList仅包含从'start'开始的'rows'文档。如果要迭代所有'numFound'文档 - 请通过
使用DocSetrb.getResults().docSet