mirror of
https://github.com/yacy/yacy_search_server.git
synced 2024-09-19 00:01:41 +02:00
Fixed Solr response header duplication when requesting external Solr
This commit is contained in:
parent
124cc24aa3
commit
c4d984cec8
|
@ -318,13 +318,27 @@ public class SolrSelectServlet extends HttpServlet {
|
|||
req = new SolrQueryRequestBase(null, mmsp) {};
|
||||
|
||||
rsp = new SolrQueryResponse();
|
||||
NamedList<Object> responseHeader = new SimpleOrderedMap<Object>();
|
||||
responseHeader.add("params", mmsp.toNamedList());
|
||||
rsp.add("responseHeader", responseHeader);
|
||||
rsp.setHttpCaching(false);
|
||||
rsp.getValues().addAll(queryRsp.getResponse());
|
||||
|
||||
|
||||
rsp.setAllValues(queryRsp.getResponse());
|
||||
|
||||
if(!mmsp.getBool(CommonParams.OMIT_HEADER, false)) {
|
||||
NamedList<Object> responseHeader = rsp.getResponseHeader();
|
||||
if (responseHeader == null) {
|
||||
/* The remote Solr provided no response header ? Not likely to happen but let's add one */
|
||||
responseHeader = new SimpleOrderedMap<Object>();
|
||||
responseHeader.add("params", mmsp.toNamedList());
|
||||
rsp.addResponseHeader(responseHeader);
|
||||
} else {
|
||||
final int paramsIndex = responseHeader.indexOf("params", 0);
|
||||
if (paramsIndex >= 0) {
|
||||
/* Write this Solr servlet initial params to the response header and not the params sent to the remote Solr that differ a little (notably the wt param) */
|
||||
responseHeader.setVal(paramsIndex, mmsp.toNamedList());
|
||||
} else {
|
||||
responseHeader.add("params", mmsp.toNamedList());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// prepare response
|
||||
hresponse.setHeader("Cache-Control", "no-cache, no-store");
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user