Method: Elasticsearch::API::Actions#index
- Defined in:
- lib/elasticsearch/api/actions/index.rb
#index(arguments = {}) ⇒ Object
Creates or updates a document in an index.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/elasticsearch/api/actions/index.rb', line 45 def index(arguments = {}) request_opts = { endpoint: arguments[:endpoint] || 'index' } defined_params = %i[index id].each_with_object({}) do |variable, set_variables| set_variables[variable] = arguments[variable] if arguments.key?(variable) end request_opts[:defined_params] = defined_params unless defined_params.empty? raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _id = arguments.delete(:id) _index = arguments.delete(:index) method = _id ? Elasticsearch::API::HTTP_PUT : Elasticsearch::API::HTTP_POST path = if _index && _id "#{Utils.__listify(_index)}/_doc/#{Utils.__listify(_id)}" else "#{Utils.__listify(_index)}/_doc" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers, request_opts) ) end |