Class SolrQueryResponse


  • public class SolrQueryResponse
    extends Object
    SolrQueryResponse is used by a query handler to return the response to a query request.

    Note On Returnable Data...
    A SolrQueryResponse may contain the following types of Objects generated by the SolrRequestHandler that processed the request.

    Other data types may be added to the SolrQueryResponse, but there is no guarantee that QueryResponseWriters will be able to deal with unexpected types.

    Since:
    solr 0.9
    • Constructor Detail

      • SolrQueryResponse

        public SolrQueryResponse()
    • Method Detail

      • setReturnFields

        public void setReturnFields​(ReturnFields fields)
        Sets the document field names of fields to return by default when returning DocLists
      • getReturnFields

        public ReturnFields getReturnFields()
        Gets the document field names of fields to return by default when returning DocLists
      • add

        public void add​(String name,
                        Object val)
        Appends a named value to the list of named values to be returned.
        Parameters:
        name - the name of the value - may be null if unnamed
        val - the value to add - also may be null since null is a legal value
        See Also:
        Note on Returnable Data
      • setException

        public void setException​(Exception e)
        Causes an error to be returned instead of the results.

        In general, new calls to this method should not be added. In most cases you should simply throw an exception and let it bubble out to RequestHandlerBase, which will set the exception thrown.

      • getException

        public Exception getException()
        Returns an Exception if there was a fatal error in processing the request. Returns null if the request succeeded.
      • addResponseHeader

        public void addResponseHeader​(NamedList<Object> header)
        Set response header
      • removeResponseHeader

        public void removeResponseHeader()
        Clear response header
      • getResponseHeader

        public NamedList<Object> getResponseHeader()
        Response header to be logged
      • addResponse

        public void addResponse​(Object response)
        Set response
      • getResponse

        public Object getResponse()
        Return response
      • addToLog

        public void addToLog​(String name,
                             Object val)
        Add a value to be logged.
        Parameters:
        name - name of the thing to log
        val - value of the thing to log
      • getToLog

        public NamedList<Object> getToLog()
        Get loggable items.
        Returns:
        things to log
      • getToLogAsString

        public String getToLogAsString()
      • getToLogAsString

        public String getToLogAsString​(String prefix)
        Returns a string of the form "prefix name1=value1 name2=value2 ..."
      • setHttpCaching

        public void setHttpCaching​(boolean httpCaching)
        Enables or disables the emission of HTTP caching headers for this response.
        Parameters:
        httpCaching - true=emit caching headers, false otherwise
      • isHttpCaching

        public boolean isHttpCaching()
        Should this response emit HTTP caching headers?
        Returns:
        true=yes emit headers, false otherwise
      • setHttpHeader

        public void setHttpHeader​(String name,
                                  String value)
        Sets a response header with the given name and value. This header will be included in the HTTP response If the header had already been set, the new value overwrites the previous ones (all of them if there are multiple for the same name).
        Parameters:
        name - the name of the header
        value - the header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
        See Also:
        addHttpHeader(java.lang.String, java.lang.String), HttpServletResponse.setHeader(java.lang.String, java.lang.String)
      • addHttpHeader

        public void addHttpHeader​(String name,
                                  String value)
        Adds a response header with the given name and value. This header will be included in the HTTP response This method allows response headers to have multiple values.
        Parameters:
        name - the name of the header
        value - the additional header value If it contains octet string, it should be encoded according to RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
        See Also:
        setHttpHeader(java.lang.String, java.lang.String), HttpServletResponse.addHeader(java.lang.String, java.lang.String)
      • getHttpHeader

        public String getHttpHeader​(String name)
        Gets the value of the response header with the given name.

        If a response header with the given name exists and contains multiple values, the value that was added first will be returned.

        NOTE: this runs in linear time (it scans starting at the beginning of the list until it finds the first pair with the specified name).

        Parameters:
        name - the name of the response header whose value to return
        Returns:
        the value of the response header with the given name, or null if no header with the given name has been set on this response
      • getHttpHeaders

        public Collection<String> getHttpHeaders​(String name)
        Gets the values of the response header with the given name.
        Parameters:
        name - the name of the response header whose values to return
        Returns:
        a (possibly empty) Collection of the values of the response header with the given name
      • removeHttpHeader

        public String removeHttpHeader​(String name)
        Removes a previously added header with the given name (only the first one if multiple are present for the same name)

        NOTE: this runs in linear time (it scans starting at the beginning of the list until it finds the first pair with the specified name).

        Parameters:
        name - the name of the response header to remove
        Returns:
        the value of the removed entry or null if no value is found for the given header name
      • removeHttpHeaders

        public Collection<String> removeHttpHeaders​(String name)
        Removes all previously added headers with the given name.
        Parameters:
        name - the name of the response headers to remove
        Returns:
        a Collection with all the values of the removed entries. It returns null if no entries are found for the given name
      • httpHeaders

        public Iterator<Map.Entry<String,​String>> httpHeaders()
        Returns a new iterator of response headers
        Returns:
        a new Iterator instance for the response headers