在SolrTemplate中使用queryForCursor时如何获取等于pageSize的记录

在SolrTemplate中使用queryForCursor时如何获取等于pageSize的记录,solr,Solr,我想使用游标从solr获取记录,因为我的结果集很大。 我正在使用SolrTemplate.queryForCursor()方法,将查询对象传递给这个函数。但是类型为Cursor的resultCursor中包含所有数据。当我的页面大小被点击时,我想停止从光标读取 Criteria query = new Criteria("UserName").is ("abc"); query.setRows(10); // As i want to have fetch 10 records at a tim

我想使用游标从solr获取记录,因为我的结果集很大。 我正在使用SolrTemplate.queryForCursor()方法,将查询对象传递给这个函数。但是类型为Cursor的resultCursor中包含所有数据。当我的页面大小被点击时,我想停止从光标读取

Criteria query = new Criteria("UserName").is ("abc");
query.setRows(10); // As i want to have fetch 10 records at a time
Cursor<T> resultCusrsor = solrTemplate.queryForCursor(query,Entity.class);
while(resultCursor.hasNext() ){
System.out.println( "Result : " + resultCusrsor.next());
}
Criteria query=新条件(“用户名”).is(“abc”);
query.setRows(10);//因为我想一次取10条记录
游标resultCusrsor=solrTemplate.queryForCursor(query,Entity.class);
while(resultCursor.hasNext()){
System.out.println(“结果:+resultCusrsor.next());
}

这里的while循环通过一次获取10条记录来保持打印所有记录。如果我的pagesize为100,我想使用游标10次提取10条记录,但如何在第100条记录处停止?

您只需为提取的项目保留一个计数器,并在达到页面大小时终止

    int pageSize = 100, rows = 10, currSize = 0;
    Criteria query = new Criteria("UserName").is("abc");
    query.setRows(rows); // As i want to have fetch 10 records at a time
    Cursor<T> resultCusrsor = solrTemplate.queryForCursor(query, Entity.class);
    while (resultCursor.hasNext() && currSize < pageSize) {
        System.out.println("Result : " + resultCusrsor.next());
        currSize = currSize + rows;
    }
intpagesize=100,rows=10,currSize=0;
条件查询=新条件(“用户名”)。为(“abc”);
query.setRows(rows);//因为我想一次取10条记录
游标resultCusrsor=solrTemplate.queryForCursor(query,Entity.class);
while(resultCursor.hasNext()&&currSize