¿Cómo se puede usar/exportar el manejador de solicitudes a través de SolrJ?
(0)
Estoy usando Solr 4.10.
He habilitado el controlador /export
solicitud de /export
para un índice agregando esto al solrconfig.xml
(como se menciona aquí: 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>
Ahora puedo usar: http: // localhost: 8983 / solr / index / select ? .... así como http: // localhost: 8983 / solr / index / export ? .... desde un navegador o curl.
Pero no puedo hacer que funcione correctamente con SolrJ.
Intenté (como se sugiere aquí: https://lucene.apache.org/solr/4_10_0/solr-solrj/index.html ):
SolrQuery query = new SolrQuery();
...
query.setRequestHandler("/export");
...
httpSolrServer.query(query);
La consulta ahora tiene un parámetro &qt=export
. Explotó dándome:
org.apache.solr.client.solrj.SolrServerException: Error executing query
Más búsqueda sugirió usar SolrRequest
lugar de SolrQuery
, lo intenté:
SolrQuery query = new SolrQuery();
...
query.setRequestHandler("/export");
SolrRequest solrRequest = new QueryRequest(query);
httpSolrServer.request(solrRequest);
Ahora entiendo:
java.nio.charset.UnsupportedCharsetException: gzip
¿Algunas ideas?
---editar---
Encontré una opción en httpSolrServer.request()
para agregar un ResponseParser
. Encontré 4 ResponseParser
s. Intenté todos, el único que funcionó fue NoOpResponseParser
. Ahora tengo los resultados correctos, pero los arrojé como una cadena simple en una sola entrada en una NamedList
. Traté de analizarlo como JSON, pero no está en el formato correcto. ¡Cada documento de 30,000, falta un !!!!
Volví a solrconfig.xml
y cambié wt
en el controlador /export
de xsort
a json
. Ahora el formato de respuesta ha cambiado, pero tampoco tiene el formato correcto (los datos están incompletos) !!!!. Y XML
no es compatible.
Estoy realmente desconcertado.