solr response in xml format

a 夏天 提交于 2019-12-13 01:04:13

问题


I am trying to query Solr using certain fields and I want the response in XML format. Somehow I am not able to get the response in XML format even though I have set the parser to XMLResponseParser. Please check the code and let me know what is wrong in here:

HttpSolrServer  solr = new HttpSolrServer(urlString);

String queryString ="*:*"; 
SolrQuery query = new SolrQuery(queryString); 
query.setQuery(queryString); 
query.setFields("type", "typestring");
query.addFilterQuery("id"); 
query.setStart(0); 
query.setRows(100); 

solr.setParser(new XMLResponseParser());

QueryResponse resp = solr.query(query);
SolrDocumentList results = resp.getResults();
for (int i = 0; i < results.size(); ++i) {
    // I need this results in xml format
    System.out.println(results.get(i));
}

回答1:


Your code is using SolrJ as a Solr client. It's precisely done to avoid dealing with XML responses, and it provides a clean way to get Solr results back in your code as objects.

If you want to get the raw xml response, just pick up any java HTTP Client, build the request and send it to Solr. You'll get a nice XML String...

NOTE : You can use ClientUtils.toQueryString(SolrParams params, boolean xml) to build the query part of your URL




回答2:


As Grooveek already wrote, SolrJ is intended to take XML parsing away from you as a user of the library. If you want to see the XML, you need to fetch the response on your own.

SolrQuery query = new SolrQuery("*:*");
// set indent == true, so that the xml output is formatted
query.set("indent", true);

// use org.apache.solr.client.solrj.util.ClientUtils 
// to make a URL compatible query string of your SolrQuery
String urlQueryString = ClientUtils.toQueryString(query, false);

String solrURL = "http://localhost:8080/solr/shard-1/select";
URL url = new URL(solrURL + urlQueryString);

// use org.apache.commons.io.IOUtils to do the http handling for you
String xmlResponse = IOUtils.toString(url);

// have a look
System.out.println(xmlResponse);


来源:https://stackoverflow.com/questions/21590190/solr-response-in-xml-format

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!