我使用的是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
处理程序中的/export
从xsort
更改为json
。现在响应格式已经改变,但它的格式也不正确(数据不完整)!!!! XML
不是。SET_SOURCE_FILES_PROPERTIES(${FILE} PROPERTIES COMPILE_FLAGS -O0)
支撑。
我真的很困惑。