1

我使用 solrj 向 solr 提交查询,该查询以 json 格式返回结果。

SolrQuery query = new SolrQuery();    
SolrQuery query = new SolrQuery();
query.setParam("kw", keyword);
query.setParam("lc", location);
query.setParam("wt", "json");
query.setParam(CommonParams.QT, "/lds");
QueryResponse qResponse = solrServer.query(query);
searchResultStr = qResponse.toString();

但是 searchResultStr 没有 JSON 格式的字符串。相反,它有这样的东西:

{responseHeader={status=0,QTime=21},location={has_zipcode=true,location_param=94085}}

但是如果我直接在浏览器中点击 solr url,我会得到正确的 JSBON 格式:

{"responseHeader":{"status":0,"QTime":15},"location": {"has_zipcode":true,"location_param":"94085"}}

4

2 回答 2

0

Solr QueryResponse 返回一个 hashmap,所以使用任何 hashmap 到 json 转换器来获取 json。在这里,我使用 Gson() 进行转换。

QueryResponse response = solr.query(query);
Gson gson = new Gson(); 
String json = gson.toJson(response.getResults());
System.out.println(json);
于 2014-05-12T07:07:59.837 回答
0

对于JSON输出,您必须按照此处答案中的说明查询HTTPSolrServer使用。使用将无济于事,即。curlEmbeddedSolrServersolrj

当您使用solrj查询时,您必须SolrDocumentList从对象中获取并通过遍历每个对象并将数据转换为您想要的方式 QueryResponse将其转换为格式。JSONSolrDocumentJSON

于 2013-02-20T15:47:34.590 回答