Pagination 带光标的Solr/Solrj分页
我想问一下如何使用solrJ从solr集合获取所有文档。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
我已经写了一个代码,但出现了错误
线程“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,请记住接受和/或投票决定答案。