SOLR分页

时间:2017-01-30 21:18:47

标签: solr pagination

我是SOLR的新手,我使用SOLRQuery查询数据库并返回下载的数据。返回的行数以百万计。

流程就像 在GUI中,单击下载按钮>通过REST,java代码使用SOLRQuery获取数据并将其返回到GUI,数据作为文件下载。

由于行数太多,我很少担心获取数据和下载文件所需的时间。那么,是否需要在SOLR查询级别进行分页?我的意思是我应该使用SOLR查询的深层分页来提高性能吗? 我添加了以下代码:

HttpSolrServer searcherServer = new HttpSolrServer(url);
SolrQuery solrQuery = new SolrQuery();
solrQuery.setRequestHandler("/export");
solrQuery.setQuery(query);
solrQuery.set("fl","field1");
solrQuery.setSort(SolrQuery.SortClause.asc("field1"));
QueryResponse resp = searcherServer.query(solrQuery);

在Schema.xml中,我将docValues =“true”添加到field1,在solrconfig.xml中我添加了https://home.apache.org/~ctargett/RefGuidePOC/jekyll-full/exporting-result-sets.html

1 个答案:

答案 0 :(得分:0)

用于导出结果集的专用requestHandler - /export请求处理程序。这适用于您要返回数百万行并希望返回完整匹配的这些情况。

导出requestHandler有一些要求:

  

要排序和导出的所有字段都必须将docValues设置为true。

     

所有查询都必须包含sort和fl参数,否则查询将返回错误。

http://localhost:8983/solr/core_name/export?q=my-query&sort=severity+desc,timestamp+desc&fl=severity,timestamp,msg

请求处理程序在Exporting result sets wiki页面详细说明。