如何通过SolrJ使用/ export请求处理程序?

时间:2015-11-05 09:17:28

标签: solr solrj

我使用的是Solr 4.10。

我已为/export添加solrconfig.xml请求处理程序(如此处所述:https://cwiki.apache.org/confluence/display/solr/Exporting+Result+Sets):

<requestHandler name="/export" class="solr.SearchHandler">
  <lst name="invariants">
    <str name="rq">{!xport}</str>
    <str name="wt">xsort</str>
    <str name="distrib">false</str>
  </lst>
  <arr name="components">
    <str>query</str>
  </arr>
</requestHandler>

现在我可以使用:http://localhost:8983/solr/index/select?....以及http://localhost:8983/solr/index/export?....来自浏览器或卷曲。

但是,我无法使用SolrJ让它正常运行。

我尝试过(按照此处的建议:https://lucene.apache.org/solr/4_10_0/solr-solrj/index.html):

SolrQuery query = new SolrQuery();
...
query.setRequestHandler("/export");
...
httpSolrServer.query(query);

查询现在有一个参数&qt=export。它爆炸了我:

org.apache.solr.client.solrj.SolrServerException: Error executing query

建议使用SolrRequest代替SolrQuery进行更多搜索,我试过了:

SolrQuery query = new SolrQuery();
...
query.setRequestHandler("/export");
SolrRequest solrRequest = new QueryRequest(query);
httpSolrServer.request(solrRequest);

现在我明白了:

java.nio.charset.UnsupportedCharsetException: gzip

有什么想法吗?

--- ---编辑

我在httpSolrServer.request()中找到了一个添加ResponseParser的选项。我找到了4 ResponseParser个。试了一下,唯一有效的是NoOpResponseParser。现在我得到了正确的结果,但是在NamedList的单个条目中作为普通字符串转储。我试图将其解析为JSON,但它的格式不正确。每30,000个文档,缺少, !!!!。

我返回solrconfig.xml并将wt处理程序中的/exportxsort更改为json。现在响应格式已经改变,但它的格式也不正确(数据不完整)!!!! XML不是。SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -O0) 支撑。

我真的很困惑。

0 个答案:

没有答案