Java 返回json格式的solr响应
我试图以JSON格式返回solr响应。但是,我无法获得JSON响应。下面是我的solr配置:'Java 返回json格式的solr响应,java,json,solr,solrj,Java,Json,Solr,Solrj,我试图以JSON格式返回solr响应。但是,我无法获得JSON响应。下面是我的solr配置:' <queryResponseWriter name="json" default="true" class="org.apache.solr.request.JSONResponseWriter"> <str name="content-type">application/json</str> </queryResponseWriter> 但是
<queryResponseWriter name="json" default="true" class="org.apache.solr.request.JSONResponseWriter">
<str name="content-type">application/json</str>
</queryResponseWriter>
但是,输出以以下格式显示
{numFound=1,start=0,docs=[SolrDocument{_uniqueKey=[“abc@gmail.com”,”abc”], calculation_policy=text_value, username=abc, email=abc@gmail.com, display_order=10, last_login=Mon Jan 26 11:27:35 PST 2015, created=Mon Jan 26 11:27:35 PST 2015}]}
但是,我在执行以下行后得到JSON响应:
System.out.println(new Gson().toJson(queryResponse.getResults().get(index)));
有人能告诉我我遗漏了什么步骤吗?也许这个链接可以澄清:
否则,您可能只需要通过Http请求就可以实现所需的功能,据我所知,该请求确实支持json。默认情况下,Solrj使用wt=javabin&version=2作为获取结果的默认值,如中所述
但是,要以json显示响应,可以使用GSON或Jackson(对象映射器)。对于较新版本的Solr(从4.7.0开始),可以直接以json格式返回查询响应。这可以通过
noopresponseparaser
完成
SolrQuery query = new SolrQuery();
QueryRequest req = new QueryRequest(query);
NoOpResponseParser rawJsonResponseParser = new NoOpResponseParser();
rawJsonResponseParser.setWriterType("json");
req.setResponseParser(rawJsonResponseParser);
NamedList<Object> resp = mySolrClient.request(req);
String jsonResponse = (String) resp.get("response");
System.out.println(jsonResponse );
SolrQuery query=new SolrQuery();
QueryRequest req=新的QueryRequest(查询);
NoOpResponseParser rawJsonResponseParser=新的NoOpResponseParser();
setWriterType(“json”);
请求setResponseParser(rawJsonResponseParser);
NamedList resp=mySolrClient.request(请求);
String jsonResponse=(String)resp.get(“response”);
System.out.println(jsonResponse);
SolrQuery query = new SolrQuery();
QueryRequest req = new QueryRequest(query);
NoOpResponseParser rawJsonResponseParser = new NoOpResponseParser();
rawJsonResponseParser.setWriterType("json");
req.setResponseParser(rawJsonResponseParser);
NamedList<Object> resp = mySolrClient.request(req);
String jsonResponse = (String) resp.get("response");
System.out.println(jsonResponse );