巨大なメモリ内を返すのではなく、反復中に結果が増分的にフェッチされるように、Solrj応答を反復する方法はありますArrayList
か?
または、これに頼る必要がありますか?
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
int fetchSize = 1000;
query.setRows(fetchSize);
QueryResponse rsp = server.query(query);
long offset = 0;
long totalResults = rsp.getResults().getNumFound();
while (offset < totalResults)
{
query.setStart((int) offset); // requires an int? wtf?
query.setRows(fetchSize);
for (SolrDocument doc : server.query(query).getResults())
{
log.info((String) doc.getFieldValue("title"));
}
offset += fetchSize;
}
そして、私がトピックに取り組んでいる間、なぜ戻るときに、がSolrQuery.setStart()
必要なのですか?integer
SolrDocumentList.getStart()/getNumFound()
long