Pagination 带光标的Solr/Solrj分页

Pagination 带光标的Solr/Solrj分页,pagination,cursor,solrj,Pagination,Cursor,Solrj,我想问一下如何使用solrJ从solr集合获取所有文档。 我已经写了一个代码,但出现了错误 线程“main”org.apache.solr.client.solrj.SolrServerException中出现异常:未在请求中指定集合参数,也未设置默认集合 String zkHostString = "linux152:2181,linuxUL:2181,linux170:2181/solr"; CloudSolrClient server = new CloudSolrClient(zkHos

我想问一下如何使用solrJ从solr集合获取所有文档。
我已经写了一个代码,但出现了错误
线程“main”org.apache.solr.client.solrj.SolrServerException中出现异常:未在请求中指定集合参数,也未设置默认集合

String zkHostString = "linux152:2181,linuxUL:2181,linux170:2181/solr";
CloudSolrClient server = new CloudSolrClient(zkHostString); 
SolrQuery parameters = new SolrQuery(); 
public void cursorMark() throws  IOException, SolrServerException {
    SolrQuery parameters = new SolrQuery();     
    QueryResponse response = new QueryResponse();
     response = server.query(parameters);
    parameters.set("q",":");
    parameters.set("qt","/select");
    parameters.setParam("wt","json"); 
    parameters.set("collection", "RetailDev_Protocol");
    int fetchSize = 2;
    parameters.setRows(fetchSize);
    String cursorMark = CursorMarkParams.CURSOR_MARK_START;
    boolean done = false;
    while (! done) {
        parameters.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark);

      long offset = 0;
      long totalResults = response.getResults().getNumFound();

      while (offset < totalResults)
      {
          parameters.setStart((int) offset);  

          try {
            for (SolrDocument doc : server.query(parameters).getResults())
              {
                   log.info((String) doc.getFieldValue("title"));
              }
        } catch (SolrServerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

          offset += fetchSize;
      }

    String nextCursorMark = (response).getNextCursorMark();



}
    SolrDocumentList list = response.getResults();
    System.out.println(list.toString());
    }
String zkHostString=“linux152:2181,linuxUL:2181,linux170:2181/solr”;
CloudSolrClient服务器=新的CloudSolrClient(zkHostString);
SolrQuery参数=新的SolrQuery();
public void cursorMark()引发IOException,SolrServerException{
SolrQuery参数=新的SolrQuery();
QueryResponse response=新的QueryResponse();
response=server.query(参数);
参数集(“q”,“:”);
参数设置(“qt”和“/select”);
setParam(“wt”、“json”);
参数集(“集合”、“RetailDev_协议”);
int fetchSize=2;
parameters.setRows(fetchSize);
字符串cursorMark=CursorMarkParams.CURSOR\u MARK\u START;
布尔完成=假;
而(!完成){
参数集(CursorMarkParams.CURSOR\u MARK\u PARAM,cursorMark);
长偏移=0;
long totalResults=response.getResults().getNumFound();
while(偏移量<总结果)
{
参数.setStart((int)偏移量);
试一试{
for(SolrDocument文档:server.query(参数).getResults())
{
log.info((字符串)doc.getFieldValue(“title”);
}
}捕获(SolrServer异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
偏移量+=取数大小;
}
字符串nextCursorMark=(响应).getNextCursorMark();
}
SolrDocumentList=response.getResults();
System.out.println(list.toString());
}

您需要按以下方式设置收藏:

server.setDefaultCollection("<MY_COLLECTION");

server.setDefaultCollection(“在Solr中实现正确的分页相当困难,我已经写了一篇文章,看看这个伟大的@shalu,请记住接受和/或投票决定答案。