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 はハッシュマップを返すため、任意のハッシュマップから 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 に答える