Class RestSearchAction

java.lang.Object
org.elasticsearch.rest.BaseRestHandler
org.elasticsearch.rest.action.search.RestSearchAction
All Implemented Interfaces:
RestHandler

public class RestSearchAction extends BaseRestHandler
  • Field Details

    • TYPES_DEPRECATION_MESSAGE

      public static final String TYPES_DEPRECATION_MESSAGE
      See Also:
    • TOTAL_HITS_AS_INT_PARAM

      public static final String TOTAL_HITS_AS_INT_PARAM
      Indicates whether hits.total should be rendered as an integer or an object in the rest search response.
      See Also:
    • TYPED_KEYS_PARAM

      public static final String TYPED_KEYS_PARAM
      See Also:
    • INCLUDE_NAMED_QUERIES_SCORE_PARAM

      public static final String INCLUDE_NAMED_QUERIES_SCORE_PARAM
      See Also:
    • RESPONSE_PARAMS

      public static final Set<String> RESPONSE_PARAMS
  • Constructor Details

  • Method Details

    • getName

      public String getName()
      Specified by:
      getName in class BaseRestHandler
      Returns:
      the name of this handler. The name should be human readable and should describe the action that will performed when this API is called. This name is used in the response to the RestNodesUsageAction.
    • routes

      public List<RestHandler.Route> routes()
      Description copied from class: BaseRestHandler
      The list of RestHandler.Routes that this RestHandler is responsible for handling.
      Specified by:
      routes in interface RestHandler
      Specified by:
      routes in class BaseRestHandler
    • prepareRequest

      public BaseRestHandler.RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException
      Description copied from class: BaseRestHandler
      Prepare the request for execution. Implementations should consume all request params before returning the runnable for actual execution. Unconsumed params will immediately terminate execution of the request. However, some params are only used in processing the response; implementations can override BaseRestHandler.responseParams() to indicate such params.
      Specified by:
      prepareRequest in class BaseRestHandler
      Parameters:
      request - the request to execute
      client - client for executing actions on the local node
      Returns:
      the action to execute
      Throws:
      IOException - if an I/O exception occurred parsing the request and preparing for execution
    • parseSearchRequest

      public static void parseSearchRequest(SearchRequest searchRequest, RestRequest request, XContentParser requestContentParser, NamedWriteableRegistry namedWriteableRegistry, Predicate<NodeFeature> clusterSupportsFeature, IntConsumer setSize) throws IOException
      Parses the rest request on top of the SearchRequest, preserving values that are not overridden by the rest request.
      Parameters:
      searchRequest - the search request that will hold what gets parsed
      request - the rest request to read from
      requestContentParser - body of the request to read. This method does not attempt to read the body from the request parameter
      namedWriteableRegistry - the registry of named writeables
      clusterSupportsFeature - used to check if certain features are available in this cluster
      setSize - how the size url parameter is handled. udpate_by_query and regular search differ here.
      Throws:
      IOException
    • parseSearchRequest

      public static void parseSearchRequest(SearchRequest searchRequest, RestRequest request, @Nullable XContentParser requestContentParser, NamedWriteableRegistry namedWriteableRegistry, Predicate<NodeFeature> clusterSupportsFeature, IntConsumer setSize, @Nullable SearchUsageHolder searchUsageHolder) throws IOException
      Parses the rest request on top of the SearchRequest, preserving values that are not overridden by the rest request.
      Parameters:
      searchRequest - the search request that will hold what gets parsed
      request - the rest request to read from
      requestContentParser - body of the request to read. This method does not attempt to read the body from the request parameter, will be null when there is no request body to parse
      namedWriteableRegistry - the registry of named writeables
      clusterSupportsFeature - used to check if certain features are available in this cluster
      setSize - how the size url parameter is handled. udpate_by_query and regular search differ here.
      searchUsageHolder - the holder of search usage stats
      Throws:
      IOException
    • validateSearchRequest

      public static void validateSearchRequest(RestRequest restRequest, SearchRequest searchRequest)
      Validates that no search request parameters conflict. This method might modify the search request to align certain parameters.
    • responseParams

      protected Set<String> responseParams()
      Description copied from class: BaseRestHandler
      Parameters used for controlling the response and thus might not be consumed during preparation of the request execution in BaseRestHandler.prepareRequest(RestRequest, NodeClient).
      Overrides:
      responseParams in class BaseRestHandler
      Returns:
      a set of parameters used to control the response and thus should not trip strict URL parameter checks.
    • allowsUnsafeBuffers

      public boolean allowsUnsafeBuffers()
      Description copied from interface: RestHandler
      Indicates if the RestHandler supports working with pooled buffers. If the request handler will not escape the return RestRequest.content() or any buffers extracted from it then there is no need to make a copies of any pooled buffers in the RestRequest instance before passing a request to this handler. If this instance does not support pooled/unsafe buffers RestRequest.ensureSafeBuffers() should be called on any request before passing it to RestHandler.handleRequest(org.elasticsearch.rest.RestRequest, org.elasticsearch.rest.RestChannel, org.elasticsearch.client.internal.node.NodeClient).
      Returns:
      true iff the handler supports requests that make use of pooled buffers