SOLR-746 -- Added "omitHeader" request parameter to omit the header from the response

git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@706577 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Shalin Shekhar Mangar 2008-10-21 11:21:26 +00:00
parent fa8ca41a71
commit 9c0c4a1621
6 changed files with 22 additions and 2 deletions

View File

@ -67,6 +67,9 @@ New Features
as well as configuration replication and exposes detailed statistics and progress information as well as configuration replication and exposes detailed statistics and progress information
on the Admin page. Works on all platforms. (Noble Paul, yonik, Akshay Ukey, shalin) on the Admin page. Works on all platforms. (Noble Paul, yonik, Akshay Ukey, shalin)
10. SOLR-746: Added "omitHeader" request parameter to omit the header from the response.
(Noble Paul via shalin)
Optimizations Optimizations
---------------------- ----------------------
1. SOLR-374: Use IndexReader.reopen to save resources by re-using parts of the 1. SOLR-374: Use IndexReader.reopen to save resources by re-using parts of the

View File

@ -89,7 +89,10 @@ public interface CommonParams {
/** include the parameters in the header **/ /** include the parameters in the header **/
public static final String HEADER_ECHO_PARAMS = "echoParams"; public static final String HEADER_ECHO_PARAMS = "echoParams";
/** include header in the response */
public static final String OMIT_HEADER = "omitHeader";
/** valid values for: <code>echoParams</code> */ /** valid values for: <code>echoParams</code> */
public enum EchoParamStyle { public enum EchoParamStyle {
EXPLICIT, EXPLICIT,

View File

@ -287,4 +287,10 @@ public class NamedList<T> implements Cloneable, Serializable, Iterable<Map.Entry
}; };
return iter; return iter;
} }
public T remove(String name) {
int idx = indexOf(name, 0);
if(idx != -1) return remove(idx);
return null;
}
} }

View File

@ -21,6 +21,7 @@ import org.apache.lucene.document.Fieldable;
import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.NamedListCodec; import org.apache.solr.common.util.NamedListCodec;
import org.apache.solr.schema.IndexSchema; import org.apache.solr.schema.IndexSchema;
@ -40,6 +41,8 @@ import java.util.*;
public class BinaryResponseWriter implements BinaryQueryResponseWriter { public class BinaryResponseWriter implements BinaryQueryResponseWriter {
public void write(OutputStream out, SolrQueryRequest req, SolrQueryResponse response) throws IOException { public void write(OutputStream out, SolrQueryRequest req, SolrQueryResponse response) throws IOException {
Resolver resolver = new Resolver(req, response.getReturnFields()); Resolver resolver = new Resolver(req, response.getReturnFields());
Boolean omitHeader = req.getParams().getBool(CommonParams.OMIT_HEADER);
if(omitHeader != null && omitHeader) response.getValues().remove("responseHeader");
NamedListCodec codec = new NamedListCodec(resolver); NamedListCodec codec = new NamedListCodec(resolver);
codec.marshal(response.getValues(), out); codec.marshal(response.getValues(), out);
} }

View File

@ -21,6 +21,7 @@ import org.apache.lucene.document.Document;
import org.apache.lucene.document.Fieldable; import org.apache.lucene.document.Fieldable;
import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap; import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.schema.SchemaField; import org.apache.solr.schema.SchemaField;
@ -85,6 +86,8 @@ class JSONWriter extends TextResponseWriter {
if(wrapperFunction!=null) { if(wrapperFunction!=null) {
writer.write(wrapperFunction + "("); writer.write(wrapperFunction + "(");
} }
Boolean omitHeader = req.getParams().getBool(CommonParams.OMIT_HEADER);
if(omitHeader != null && omitHeader) rsp.getValues().remove("responseHeader");
writeNamedList(null, rsp.getValues()); writeNamedList(null, rsp.getValues());
if(wrapperFunction!=null) { if(wrapperFunction!=null) {
writer.write(')'); writer.write(')');
@ -836,4 +839,4 @@ abstract class NaNFloatWriter extends JSONWriter {
writeDouble(name, Double.toString(val)); writeDouble(name, Double.toString(val));
} }
} }
} }

View File

@ -99,6 +99,8 @@ final public class XMLWriter {
// dump response values // dump response values
NamedList lst = rsp.getValues(); NamedList lst = rsp.getValues();
Boolean omitHeader = req.getParams().getBool(CommonParams.OMIT_HEADER);
if(omitHeader != null && omitHeader) lst.remove("responseHeader");
int sz = lst.size(); int sz = lst.size();
int start=0; int start=0;