2017-01-30 41 views
0

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

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

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

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”将Field 1和solrconfig.xml中我加入这里给出https://home.apache.org/~ctargett/RefGuidePOC/jekyll-full/exporting-result-sets.html

+0

你是否亲自尝试过? – Mysterion

+0

你在设计出口吗?分页是由不同的人逐页完成的。我不知道用户通过数百万页手动页面。 – cheffe

+0

是的,我正在设计出口kinda – MadxG

回答

0

有一个专门的requestHandler导出结果套 - /export请求处理程序。这是针对以下情况进行调整的:您将返回数百万行,并希望返回完整的点击数。

没有为出口requestHandler点有几个要求:

的所有字段进行排序,并远销必须docValues设置为true。

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

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

请求处理程序是在Exporting result sets维基页面详细介绍。

+0

我要试一下,并更新它是否帮助我。谢谢! – MadxG

+0

我在客户端使用SOLR查询(这是一个java代码)。我试图使用导出,但我想我错过了一些东西。它给了我一个例外“客户端发送的请求在语法上不正确({msg = XMLWriter不支持版本2,代码= 400})” 有什么建议吗? – MadxG

+0

我已添加我的代码。请让我知道我错过了什么。 – MadxG