2

看起来 Solrj 的 QueryResponse 没有办法给你一个带有 wt=on 的引用 Json 字符串。我收到的都是这样的

{responseHeader={status=0,QTime=2,params= {fl=id,productName,imageFront,priceEng,priceEngExp...

问题:

1)我在这里错过了什么吗?或者 Solrj 无法从 Solr 服务器正确获取 json 响应。

2)现在在我的客户端上,如果我从 Solrj 转换未引用的 json 字符串,这是否意味着它已完成两次,一次在服务器时间,一次在 Solrj 客户端时间?

4

2 回答 2

9

您可以通过将 wt=json 设置为 Solr 查询来获得 JSON 响应。示例 URL 如下所示:

localhost:8983/solr/select/?q= : &rows=10&indent=on&wt=json

您无法使用 Solrj 获得 JSON 响应。您不需要为此使用 Solrj。通过向上面的 URL 发送 HTTP 请求,您可以获得 json 响应。

于 2012-07-24T06:11:42.997 回答
2

使用较新版本的 Solr(从 4.7.0 开始)可以直接以 json 格式返回查询响应。这可以通过 NoOpResponseParser 完成。

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 );
于 2019-10-22T07:51:54.880 回答