def do_search(generic_opts={}, explicit_body=nil)
      query_opts = {}
      body = nil
      if explicit_body
        query_opts = generic_opts
        body = explicit_body
      else
        body = generic_opts
      end

      response = request(:get, "_search", query_opts, nil, {}, :mashify => false) do |req|
        req.body = body
      end
      SearchResults.new(response)
    end
def do_search(generic_opts={}, explicit_body=nil)
      query_opts = {}
      body = nil
      if explicit_body
        query_opts = generic_opts
        body = explicit_body
      else
        body = generic_opts
      end

      response = request(:get, "_search", query_opts, nil, {}, :mashify => false) do |req|
        req.body = body
      end
      SearchResults.new(response)
    end
Many of the methods marked protected are called by one line shims in subclasses. This is mostly to facilitate
 better looking rdocs