org.apache.solr.response

## Class SolrQueryResponse

- java.lang.Object
- - org.apache.solr.response.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.

  - `String`
  - `Integer`
  - `Long`
  - `Float`
  - `Double`
  - `Boolean`
  - `Date`
  - `DocList`
  - `SolrDocument` (since 1.3)
  - `SolrDocumentList` (since 1.3)
  - `Map` containing any of the items in this list
  - `NamedList` containing any of the items in this list
  - `Collection` containing any of the items in this list
  - Array containing any of the items in this list
  - null

  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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Exception` | `err`
    `protected boolean` | `httpCaching` Should this response be tagged with HTTP caching headers?
    `static String` | `NAME`
    `static String` | `RESPONSE_HEADER_PARTIAL_RESULTS_KEY`
    `static String` | `RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY`
    `protected ReturnFields` | `returnFields`
    `protected NamedList<Object>` | `toLog` Container for storing information that should be logged by Solr before returning.
    `protected NamedList<Object>` | `values` Container for user defined values

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SolrQueryResponse()` // another way of returning an error int errCode; String errMsg;

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(String name, Object val)` Appends a named value to the list of named values to be returned.
    `void` | `addHttpHeader(String name, String value)` Adds a response header with the given name and value.
    `void` | `addResponse(Object response)` Set response
    `void` | `addResponseHeader(NamedList<Object> header)` Set response header
    `void` | `addToLog(String name, Object val)` Add a value to be logged.
    `Exception` | `getException()` Returns an Exception if there was a fatal error in processing the request.
    `String` | `getHttpHeader(String name)` Gets the value of the response header with the given name.
    `Collection<String>` | `getHttpHeaders(String name)` Gets the values of the response header with the given name.
    `Object` | `getResponse()` Return response
    `NamedList<Object>` | `getResponseHeader()` Response header to be logged
    `ReturnFields` | `getReturnFields()` Gets the document field names of fields to return by default when returning DocLists
    `NamedList<Object>` | `getToLog()` Get loggable items.
    `String` | `getToLogAsString(String logid)` Returns a string of the form "logid name1=value1 name2=value2 ..."
    `NamedList` | `getValues()` Gets data to be returned in this response
    `Iterator<Map.Entry<String,String>>` | `httpHeaders()` Returns a new iterator of response headers
    `boolean` | `isHttpCaching()` Should this response emit HTTP caching headers?
    `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)
    `Collection<String>` | `removeHttpHeaders(String name)` Removes all previously added headers with the given name.
    `void` | `removeResponseHeader()` Clear response header
    `void` | `setAllValues(NamedList<Object> nameValuePairs)` Sets data to be returned in this response
    `void` | `setException(Exception e)` Causes an error to be returned instead of the results.
    `void` | `setHttpCaching(boolean httpCaching)` Enables or disables the emission of HTTP caching headers for this response.
    `void` | `setHttpHeader(String name, String value)` Sets a response header with the given name and value.
    `void` | `setReturnFields(ReturnFields fields)` Sets the document field names of fields to return by default when returning DocLists

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### NAME

          public static final String NAME

      See Also:
        Constant Field Values

    - #### RESPONSE_HEADER_PARTIAL_RESULTS_KEY

          public static final String RESPONSE_HEADER_PARTIAL_RESULTS_KEY

      See Also:
        Constant Field Values

    - #### RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY

          public static final String RESPONSE_HEADER_SEGMENT_TERMINATED_EARLY_KEY

      See Also:
        Constant Field Values

    - #### values

          protected NamedList<Object> values

      Container for user defined values
      See Also:
        `getValues()`, `add(java.lang.String, java.lang.Object)`, `setAllValues(org.apache.solr.common.util.NamedList<java.lang.Object>)`, Note on Returnable Data

    - #### toLog

          protected NamedList<Object> toLog

      Container for storing information that should be logged by Solr before returning.

    - #### returnFields

          protected ReturnFields returnFields

    - #### err

          protected Exception err

    - #### httpCaching

          protected boolean httpCaching

      Should this response be tagged with HTTP caching headers?

  - ### Constructor Detail

    - #### SolrQueryResponse

          public SolrQueryResponse()

      // another way of returning an error int errCode; String errMsg;

  - ### Method Detail

    - #### getValues

          public NamedList getValues()

      Gets data to be returned in this response
      See Also:
        Note on Returnable Data

    - #### setAllValues

          public void setAllValues(NamedList<Object> nameValuePairs)

      Sets data to be returned in this response
      See Also:
        Note on Returnable Data

    - #### 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(String logid)

      Returns a string of the form "logid 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

Copyright © 2000-2016 Apache Software Foundation. All Rights Reserved.