search

in opensearch-api/lib/opensearch/api/actions/search.rb [85:113]


      def search(arguments = {})
        headers = arguments.delete(:headers) || {}

        arguments = arguments.clone
        arguments[:index] = UNDERSCORE_ALL if !arguments[:index] && arguments[:type]

        _index = arguments.delete(:index)

        _type = arguments.delete(:type)

        method = if arguments[:body]
                   OpenSearch::API::HTTP_POST
                 else
                   OpenSearch::API::HTTP_GET
                 end

        path = if _index && _type
                 "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_search"
               elsif _index
                 "#{Utils.__listify(_index)}/_search"
               else
                 "_search"
               end
        params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

        body = arguments[:body]
        perform_request(method, path, params, body, headers).body
      end