簡體   English   中英

Java:從Solr獲取XML格式的響應

[英]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()));

但是在輸出中,我可以看到一些javascript,其后是XML輸出: 在此處輸入圖片說明

在Solr中,XML的輸出如下所示: 在此處輸入圖片說明

沒有嘗試過,但應該可以,

您需要初始化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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM