[英]Java: Get response from Solr in XML format
我是Solr的新手。 我想使用Java連接到我的solr核心,並以XML格式返回結果。 通過參考官方文檔,我能夠以二進制形式獲取結果。 下面是我的代碼:
public static void main(String[] args) throws SolrServerException, IOException {
String urlString = "http://localhost:8983/solr/index1/";
SolrClient solr = new HttpSolrClient.Builder(urlString).build();
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
QueryResponse response = solr.query(query);
System.out.println(response.toString());
}
我也嘗試研究如何獲得回應。 我發現此鏈接顯示為“如果要獲取原始的xml響應,只需拾取任何Java HTTP客戶端,構建請求並將其發送給Solr。您將獲得一個不錯的XML字符串。” xml格式的solr響應我對以下代碼進行了編碼,但未給我答復
public static void main(String[] args) throws ClientProtocolException, IOException
{
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://localhost:8983/solr/index1/select?q=*:*&wt=xml");
CloseableHttpResponse response1 = httpclient.execute(httpGet);
System.out.println(response1);
}
}
輸出:
HttpResponseProxy{HTTP/1.1 200 OK [Content-Type: application/xml; charset=UTF-8, Transfer-Encoding: chunked] ResponseEntityProxy{[Content-Type: application/xml; charset=UTF-8,Chunked: true]}}
在官方網站https://lucene.apache.org/solr/guide/6_6/using-solrj.html上 ,提到使用
solr.setParser(new XMLResponseParser());
獲取XML響應,但是由於沒有給出任何示例,因此我不確定如何使用它。 任何幫助表示贊賞。
編輯:如約翰的評論中所述,我將代碼修改為:
System.out.println(EntityUtils.toString(response1.getEntity()));
沒有嘗試過,但應該可以,
您需要初始化org.apache.solr.client.solrj.SolrClient
,它表示您要使用的Solr實例,如下所示。
import org.apache.solr.client.solrj.impl.XMLResponseParser;
String serverURL = "http://localhost:8983/solr/<core_name>";
SolrClient solr = new HttpSolrClient.Builder(serverURL).build();
solr.setParser(new XMLResponseParser());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.