Module: Elasticsearch::API::Actions
- Defined in:
- lib/elasticsearch/api/actions/get.rb,
lib/elasticsearch/api/actions/bulk.rb,
lib/elasticsearch/api/actions/info.rb,
lib/elasticsearch/api/actions/mget.rb,
lib/elasticsearch/api/actions/ping.rb,
lib/elasticsearch/api/actions/count.rb,
lib/elasticsearch/api/actions/index.rb,
lib/elasticsearch/api/actions/create.rb,
lib/elasticsearch/api/actions/delete.rb,
lib/elasticsearch/api/actions/exists.rb,
lib/elasticsearch/api/actions/scroll.rb,
lib/elasticsearch/api/actions/search.rb,
lib/elasticsearch/api/actions/update.rb,
lib/elasticsearch/api/actions/explain.rb,
lib/elasticsearch/api/actions/msearch.rb,
lib/elasticsearch/api/actions/reindex.rb,
lib/elasticsearch/api/actions/rank_eval.rb,
lib/elasticsearch/api/actions/field_caps.rb,
lib/elasticsearch/api/actions/get_script.rb,
lib/elasticsearch/api/actions/get_source.rb,
lib/elasticsearch/api/actions/knn_search.rb,
lib/elasticsearch/api/actions/put_script.rb,
lib/elasticsearch/api/actions/search_mvt.rb,
lib/elasticsearch/api/actions/terms_enum.rb,
lib/elasticsearch/api/actions/termvectors.rb,
lib/elasticsearch/api/actions/clear_scroll.rb,
lib/elasticsearch/api/actions/mtermvectors.rb,
lib/elasticsearch/api/actions/delete_script.rb,
lib/elasticsearch/api/actions/exists_source.rb,
lib/elasticsearch/api/actions/search_shards.rb,
lib/elasticsearch/api/actions/delete_by_query.rb,
lib/elasticsearch/api/actions/search_template.rb,
lib/elasticsearch/api/actions/update_by_query.rb,
lib/elasticsearch/api/actions/msearch_template.rb,
lib/elasticsearch/api/actions/get_script_context.rb,
lib/elasticsearch/api/actions/open_point_in_time.rb,
lib/elasticsearch/api/actions/reindex_rethrottle.rb,
lib/elasticsearch/api/actions/close_point_in_time.rb,
lib/elasticsearch/api/actions/get_script_languages.rb,
lib/elasticsearch/api/actions/render_search_template.rb,
lib/elasticsearch/api/actions/scripts_painless_execute.rb,
lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb,
lib/elasticsearch/api/actions/update_by_query_rethrottle.rb
Instance Method Summary collapse
-
#bulk(arguments = {}) ⇒ Object
Allows to perform multiple index/update/delete operations in a single request.
-
#clear_scroll(arguments = {}) ⇒ Object
Explicitly clears the search context for a scroll.
-
#close_point_in_time(arguments = {}) ⇒ Object
Close a point in time.
-
#count(arguments = {}) ⇒ Object
Returns number of documents matching a query.
-
#create(arguments = {}) ⇒ Object
Creates a new document in the index.
-
#delete(arguments = {}) ⇒ Object
Removes a document from the index.
-
#delete_by_query(arguments = {}) ⇒ Object
Deletes documents matching the provided query.
-
#delete_by_query_rethrottle(arguments = {}) ⇒ Object
Changes the number of requests per second for a particular Delete By Query operation.
-
#delete_script(arguments = {}) ⇒ Object
Deletes a script.
-
#exists(arguments = {}) ⇒ Object
(also: #exists?)
Returns information about whether a document exists in an index.
-
#exists_source(arguments = {}) ⇒ Object
(also: #exists_source?)
Returns information about whether a document source exists in an index.
-
#explain(arguments = {}) ⇒ Object
Returns information about why a specific matches (or doesn't match) a query.
-
#field_caps(arguments = {}) ⇒ Object
Returns the information about the capabilities of fields among multiple indices.
-
#get(arguments = {}) ⇒ Object
Returns a document.
-
#get_script(arguments = {}) ⇒ Object
Returns a script.
-
#get_script_context(arguments = {}) ⇒ Object
Returns all script contexts.
-
#get_script_languages(arguments = {}) ⇒ Object
Returns available script types, languages and contexts.
-
#get_source(arguments = {}) ⇒ Object
Returns the source of a document.
-
#index(arguments = {}) ⇒ Object
Creates or updates a document in an index.
-
#info(arguments = {}) ⇒ Object
Returns basic information about the cluster.
-
#knn_search(arguments = {}) ⇒ Object
Performs a kNN search.
-
#mget(arguments = {}) ⇒ Object
Allows to get multiple documents in one request.
-
#msearch(arguments = {}) ⇒ Object
Allows to execute several search operations in one request.
-
#msearch_template(arguments = {}) ⇒ Object
Allows to execute several search template operations in one request.
-
#mtermvectors(arguments = {}) ⇒ Object
Returns multiple termvectors in one request.
-
#open_point_in_time(arguments = {}) ⇒ Object
Open a point in time that can be used in subsequent searches.
-
#ping(arguments = {}) ⇒ Object
Returns whether the cluster is running.
-
#put_script(arguments = {}) ⇒ Object
Creates or updates a script.
-
#rank_eval(arguments = {}) ⇒ Object
Allows to evaluate the quality of ranked search results over a set of typical search queries.
-
#reindex(arguments = {}) ⇒ Object
Allows to copy documents from one index to another, optionally filtering the source documents by a query, changing the destination index settings, or fetching the documents from a remote cluster.
-
#reindex_rethrottle(arguments = {}) ⇒ Object
Changes the number of requests per second for a particular Reindex operation.
-
#render_search_template(arguments = {}) ⇒ Object
Allows to use the Mustache language to pre-render a search definition.
-
#scripts_painless_execute(arguments = {}) ⇒ Object
Allows an arbitrary script to be executed and a result to be returned This functionality is Experimental and may be changed or removed completely in a future release.
-
#scroll(arguments = {}) ⇒ Object
Allows to retrieve a large numbers of results from a single search request.
-
#search(arguments = {}) ⇒ Object
Returns results matching a query.
-
#search_mvt(arguments = {}) ⇒ Object
Searches a vector tile for geospatial values.
-
#search_shards(arguments = {}) ⇒ Object
Returns information about the indices and shards that a search request would be executed against.
-
#search_template(arguments = {}) ⇒ Object
Allows to use the Mustache language to pre-render a search definition.
-
#terms_enum(arguments = {}) ⇒ Object
The terms enum API can be used to discover terms in the index that begin with the provided string.
-
#termvector(arguments = {}) ⇒ Object
Deprecated: Use the plural version, #termvectors.
-
#termvectors(arguments = {}) ⇒ Object
Returns information and statistics about terms in the fields of a particular document.
-
#update(arguments = {}) ⇒ Object
Updates a document with a script or partial document.
-
#update_by_query(arguments = {}) ⇒ Object
Performs an update on every document in the index without changing the source, for example to pick up a mapping change.
-
#update_by_query_rethrottle(arguments = {}) ⇒ Object
Changes the number of requests per second for a particular Update By Query operation.
Instance Method Details
#bulk(arguments = {}) ⇒ Object
Allows to perform multiple index/update/delete operations in a single request.
or the conveniency “combined” format can be passed, refer to Elasticsearch::API::Utils.__bulkify documentation.
43 44 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 |
# File 'lib/elasticsearch/api/actions/bulk.rb', line 43 def bulk(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = if _index "#{Utils.__listify(_index)}/_bulk" else "_bulk" end params = Utils.process_params(arguments) if body.is_a? Array payload = Elasticsearch::API::Utils.__bulkify(body) else payload = body end headers.merge!("Content-Type" => "application/x-ndjson") Elasticsearch::API::Response.new( perform_request(method, path, params, payload, headers) ) end |
#clear_scroll(arguments = {}) ⇒ Object
Explicitly clears the search context for a scroll.
*Deprecation notice*: A scroll id can be quite large and should be specified as part of the body Deprecated since version 7.0.0
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/elasticsearch/api/actions/clear_scroll.rb', line 37 def clear_scroll(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _scroll_id = arguments.delete(:scroll_id) method = Elasticsearch::API::HTTP_DELETE path = if _scroll_id "_search/scroll/#{Utils.__listify(_scroll_id)}" else "_search/scroll" end params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#close_point_in_time(arguments = {}) ⇒ Object
Close a point in time
31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/elasticsearch/api/actions/close_point_in_time.rb', line 31 def close_point_in_time(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) method = Elasticsearch::API::HTTP_DELETE path = "_pit" params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#count(arguments = {}) ⇒ Object
Returns number of documents matching a query.
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 |
# File 'lib/elasticsearch/api/actions/count.rb', line 46 def count(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = if _index "#{Utils.__listify(_index)}/_count" else "_count" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#create(arguments = {}) ⇒ Object
Creates a new document in the index.
Returns a 409 response when a document with a same ID already exists in the index.
42 43 44 45 46 47 48 |
# File 'lib/elasticsearch/api/actions/create.rb', line 42 def create(arguments = {}) if arguments[:id] index arguments.update op_type: 'create' else index arguments end end |
#delete(arguments = {}) ⇒ Object
Removes a document from the index.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/elasticsearch/api/actions/delete.rb', line 40 def delete(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _id = arguments.delete(:id) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_DELETE path = "#{Utils.__listify(_index)}/_doc/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) if Array(arguments[:ignore]).include?(404) Utils.__rescue_from_not_found { Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) } else Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end end |
#delete_by_query(arguments = {}) ⇒ Object
Deletes documents matching the provided query.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/elasticsearch/api/actions/delete_by_query.rb', line 61 def delete_by_query(arguments = {}) 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) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = "#{Utils.__listify(_index)}/_delete_by_query" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#delete_by_query_rethrottle(arguments = {}) ⇒ Object
Changes the number of requests per second for a particular Delete By Query operation.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb', line 32 def delete_by_query_rethrottle(arguments = {}) raise ArgumentError, "Required argument 'task_id' missing" unless arguments[:task_id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _task_id = arguments.delete(:task_id) method = Elasticsearch::API::HTTP_POST path = "_delete_by_query/#{Utils.__listify(_task_id)}/_rethrottle" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#delete_script(arguments = {}) ⇒ Object
Deletes a script.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/elasticsearch/api/actions/delete_script.rb', line 33 def delete_script(arguments = {}) raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _id = arguments.delete(:id) method = Elasticsearch::API::HTTP_DELETE path = "_scripts/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#exists(arguments = {}) ⇒ Object Also known as: exists?
Returns information about whether a document exists in an index.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/elasticsearch/api/actions/exists.rb', line 42 def exists(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _id = arguments.delete(:id) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_HEAD path = "#{Utils.__listify(_index)}/_doc/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) Utils.__rescue_from_not_found do perform_request(method, path, params, body, headers).status == 200 ? true : false end end |
#exists_source(arguments = {}) ⇒ Object Also known as: exists_source?
Returns information about whether a document source exists in an index.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/elasticsearch/api/actions/exists_source.rb', line 41 def exists_source(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _id = arguments.delete(:id) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_HEAD path = "#{Utils.__listify(_index)}/_source/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#explain(arguments = {}) ⇒ Object
Returns information about why a specific matches (or doesn't match) a query.
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 |
# File 'lib/elasticsearch/api/actions/explain.rb', line 45 def explain(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _id = arguments.delete(:id) _index = arguments.delete(:index) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = "#{Utils.__listify(_index)}/_explain/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#field_caps(arguments = {}) ⇒ Object
Returns the information about the capabilities of fields among multiple indices.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/elasticsearch/api/actions/field_caps.rb', line 39 def field_caps(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = if _index "#{Utils.__listify(_index)}/_field_caps" else "_field_caps" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#get(arguments = {}) ⇒ Object
Returns a document.
42 43 44 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 |
# File 'lib/elasticsearch/api/actions/get.rb', line 42 def get(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _id = arguments.delete(:id) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_GET path = "#{Utils.__listify(_index)}/_doc/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) if Array(arguments[:ignore]).include?(404) Utils.__rescue_from_not_found { Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) } else Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end end |
#get_script(arguments = {}) ⇒ Object
Returns a script.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/elasticsearch/api/actions/get_script.rb', line 32 def get_script(arguments = {}) raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _id = arguments.delete(:id) method = Elasticsearch::API::HTTP_GET path = "_scripts/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#get_script_context(arguments = {}) ⇒ Object
Returns all script contexts.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/elasticsearch/api/actions/get_script_context.rb', line 30 def get_script_context(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil method = Elasticsearch::API::HTTP_GET path = "_script_context" params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#get_script_languages(arguments = {}) ⇒ Object
Returns available script types, languages and contexts
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/elasticsearch/api/actions/get_script_languages.rb', line 30 def get_script_languages(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil method = Elasticsearch::API::HTTP_GET path = "_script_language" params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#get_source(arguments = {}) ⇒ Object
Returns the source of a document.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/elasticsearch/api/actions/get_source.rb', line 41 def get_source(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _id = arguments.delete(:id) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_GET path = "#{Utils.__listify(_index)}/_source/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#index(arguments = {}) ⇒ Object
Creates or updates a document in an index.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/elasticsearch/api/actions/index.rb', line 44 def index(arguments = {}) 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) ) end |
#info(arguments = {}) ⇒ Object
Returns basic information about the cluster.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/elasticsearch/api/actions/info.rb', line 30 def info(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil method = Elasticsearch::API::HTTP_GET path = "" params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#knn_search(arguments = {}) ⇒ Object
Performs a kNN search. This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/elasticsearch/api/actions/knn_search.rb', line 37 def knn_search(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = "#{Utils.__listify(_index)}/_knn_search" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#mget(arguments = {}) ⇒ Object
Allows to get multiple documents in one request.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/elasticsearch/api/actions/mget.rb', line 40 def mget(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = if _index "#{Utils.__listify(_index)}/_mget" else "_mget" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#msearch(arguments = {}) ⇒ Object
Allows to execute several search operations in one request.
39 40 41 42 43 44 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 77 78 79 80 81 82 83 |
# File 'lib/elasticsearch/api/actions/msearch.rb', line 39 def msearch(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = if _index "#{Utils.__listify(_index)}/_msearch" else "_msearch" end params = Utils.process_params(arguments) case when body.is_a?(Array) && body.any? { |d| d.has_key? :search } payload = body .inject([]) do |sum, item| = item data = .delete(:search) sum << sum << data sum end .map { |item| Elasticsearch::API.serializer.dump(item) } payload << "" unless payload.empty? payload = payload.join("\n") when body.is_a?(Array) payload = body.map { |d| d.is_a?(String) ? d : Elasticsearch::API.serializer.dump(d) } payload << "" unless payload.empty? payload = payload.join("\n") else payload = body end headers.merge!("Content-Type" => "application/x-ndjson") Elasticsearch::API::Response.new( perform_request(method, path, params, payload, headers) ) end |
#msearch_template(arguments = {}) ⇒ Object
Allows to execute several search template operations in one request.
37 38 39 40 41 42 43 44 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 |
# File 'lib/elasticsearch/api/actions/msearch_template.rb', line 37 def msearch_template(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = if _index "#{Utils.__listify(_index)}/_msearch/template" else "_msearch/template" end params = Utils.process_params(arguments) case when body.is_a?(Array) payload = body.map { |d| d.is_a?(String) ? d : Elasticsearch::API.serializer.dump(d) } payload << "" unless payload.empty? payload = payload.join(" ") else payload = body end headers.merge!("Content-Type" => "application/x-ndjson") Elasticsearch::API::Response.new( perform_request(method, path, params, payload, headers) ) end |
#mtermvectors(arguments = {}) ⇒ Object
Returns multiple termvectors in one request.
44 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 |
# File 'lib/elasticsearch/api/actions/mtermvectors.rb', line 44 def mtermvectors(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = if (ids = arguments.delete(:ids)) { :ids => ids } else arguments.delete(:body) end _index = arguments.delete(:index) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = if _index "#{Utils.__listify(_index)}/_mtermvectors" else "_mtermvectors" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#open_point_in_time(arguments = {}) ⇒ Object
Open a point in time that can be used in subsequent searches
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/elasticsearch/api/actions/open_point_in_time.rb', line 36 def open_point_in_time(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = "#{Utils.__listify(_index)}/_pit" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#ping(arguments = {}) ⇒ Object
Returns whether the cluster is running.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/elasticsearch/api/actions/ping.rb', line 30 def ping(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil method = Elasticsearch::API::HTTP_HEAD path = "" params = {} begin perform_request(method, path, params, body, headers).status == 200 ? true : false rescue Exception => e if e.class.to_s =~ /NotFound|ConnectionFailed/ || e. =~ /Not *Found|404|ConnectionFailed/i false else raise e end end end |
#put_script(arguments = {}) ⇒ Object
Creates or updates a script.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/elasticsearch/api/actions/put_script.rb', line 35 def put_script(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _id = arguments.delete(:id) _context = arguments.delete(:context) method = Elasticsearch::API::HTTP_PUT path = if _id && _context "_scripts/#{Utils.__listify(_id)}/#{Utils.__listify(_context)}" else "_scripts/#{Utils.__listify(_id)}" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#rank_eval(arguments = {}) ⇒ Object
Allows to evaluate the quality of ranked search results over a set of typical search queries
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/elasticsearch/api/actions/rank_eval.rb', line 36 def rank_eval(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = if _index "#{Utils.__listify(_index)}/_rank_eval" else "_rank_eval" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#reindex(arguments = {}) ⇒ Object
Allows to copy documents from one index to another, optionally filtering the source documents by a query, changing the destination index settings, or fetching the documents from a remote cluster.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/elasticsearch/api/actions/reindex.rb', line 41 def reindex(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) method = Elasticsearch::API::HTTP_POST path = "_reindex" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#reindex_rethrottle(arguments = {}) ⇒ Object
Changes the number of requests per second for a particular Reindex operation.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/elasticsearch/api/actions/reindex_rethrottle.rb', line 32 def reindex_rethrottle(arguments = {}) raise ArgumentError, "Required argument 'task_id' missing" unless arguments[:task_id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _task_id = arguments.delete(:task_id) method = Elasticsearch::API::HTTP_POST path = "_reindex/#{Utils.__listify(_task_id)}/_rethrottle" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#render_search_template(arguments = {}) ⇒ Object
Allows to use the Mustache language to pre-render a search definition.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/elasticsearch/api/actions/render_search_template.rb', line 32 def render_search_template(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _id = arguments.delete(:id) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = if _id "_render/template/#{Utils.__listify(_id)}" else "_render/template" end params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#scripts_painless_execute(arguments = {}) ⇒ Object
Allows an arbitrary script to be executed and a result to be returned This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/elasticsearch/api/actions/scripts_painless_execute.rb', line 35 def scripts_painless_execute(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = "_scripts/painless/_execute" params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#scroll(arguments = {}) ⇒ Object
Allows to retrieve a large numbers of results from a single search request.
*Deprecation notice*: A scroll id can be quite large and should be specified as part of the body Deprecated since version 7.0.0
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/elasticsearch/api/actions/scroll.rb', line 39 def scroll(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _scroll_id = arguments.delete(:scroll_id) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = if _scroll_id "_search/scroll/#{Utils.__listify(_scroll_id)}" else "_search/scroll" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#search(arguments = {}) ⇒ Object
Returns results matching a query.
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/elasticsearch/api/actions/search.rb', line 75 def search(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) arguments[:index] = UNDERSCORE_ALL if !arguments[:index] && arguments[:type] _index = arguments.delete(:index) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = if _index "#{Utils.__listify(_index)}/_search" else "_search" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#search_mvt(arguments = {}) ⇒ Object
Searches a vector tile for geospatial values. Returns results as a binary Mapbox vector tile. This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.
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/search_mvt.rb', line 47 def search_mvt(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'field' missing" unless arguments[:field] raise ArgumentError, "Required argument 'zoom' missing" unless arguments[:zoom] raise ArgumentError, "Required argument 'x' missing" unless arguments[:x] raise ArgumentError, "Required argument 'y' missing" unless arguments[:y] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) _field = arguments.delete(:field) _zoom = arguments.delete(:zoom) _x = arguments.delete(:x) _y = arguments.delete(:y) method = Elasticsearch::API::HTTP_POST path = "#{Utils.__listify(_index)}/_mvt/#{Utils.__listify(_field)}/#{Utils.__listify(_zoom)}/#{Utils.__listify(_x)}/#{Utils.__listify(_y)}" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#search_shards(arguments = {}) ⇒ Object
Returns information about the indices and shards that a search request would be executed against.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/elasticsearch/api/actions/search_shards.rb', line 37 def search_shards(arguments = {}) arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_GET path = if _index "#{Utils.__listify(_index)}/_search_shards" else "_search_shards" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#search_template(arguments = {}) ⇒ Object
Allows to use the Mustache language to pre-render a search definition.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/elasticsearch/api/actions/search_template.rb', line 45 def search_template(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = if _index "#{Utils.__listify(_index)}/_search/template" else "_search/template" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#terms_enum(arguments = {}) ⇒ Object
The terms enum API can be used to discover terms in the index that begin with the provided string. It is designed for low-latency look-ups used in auto-complete scenarios.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/elasticsearch/api/actions/terms_enum.rb', line 32 def terms_enum(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end path = "#{Utils.__listify(_index)}/_terms_enum" params = {} Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#termvector(arguments = {}) ⇒ Object
Deprecated: Use the plural version, #termvectors
77 78 79 |
# File 'lib/elasticsearch/api/actions/termvectors.rb', line 77 def termvector(arguments = {}) termvectors(arguments.merge endpoint: '_termvector') end |
#termvectors(arguments = {}) ⇒ Object
Returns information and statistics about terms in the fields of a particular document.
44 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 |
# File 'lib/elasticsearch/api/actions/termvectors.rb', line 44 def termvectors(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) _id = arguments.delete(:id) method = if body Elasticsearch::API::HTTP_POST else Elasticsearch::API::HTTP_GET end endpoint = arguments.delete(:endpoint) || '_termvectors' path = if _index && _id "#{Utils.__listify(_index)}/_termvectors/#{Utils.__listify(_id)}" else "#{Utils.__listify(_index)}/_termvectors" end params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#update(arguments = {}) ⇒ Object
Updates a document with a script or partial document.
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 |
# File 'lib/elasticsearch/api/actions/update.rb', line 45 def update(arguments = {}) raise ArgumentError, "Required argument 'body' missing" unless arguments[:body] raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] raise ArgumentError, "Required argument 'id' missing" unless arguments[:id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _id = arguments.delete(:id) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = "#{Utils.__listify(_index)}/_update/#{Utils.__listify(_id)}" params = Utils.process_params(arguments) if Array(arguments[:ignore]).include?(404) Utils.__rescue_from_not_found { Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) } else Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end end |
#update_by_query(arguments = {}) ⇒ Object
Performs an update on every document in the index without changing the source, for example to pick up a mapping change.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/elasticsearch/api/actions/update_by_query.rb', line 64 def update_by_query(arguments = {}) raise ArgumentError, "Required argument 'index' missing" unless arguments[:index] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = arguments.delete(:body) _index = arguments.delete(:index) method = Elasticsearch::API::HTTP_POST path = "#{Utils.__listify(_index)}/_update_by_query" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |
#update_by_query_rethrottle(arguments = {}) ⇒ Object
Changes the number of requests per second for a particular Update By Query operation.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/elasticsearch/api/actions/update_by_query_rethrottle.rb', line 32 def update_by_query_rethrottle(arguments = {}) raise ArgumentError, "Required argument 'task_id' missing" unless arguments[:task_id] arguments = arguments.clone headers = arguments.delete(:headers) || {} body = nil _task_id = arguments.delete(:task_id) method = Elasticsearch::API::HTTP_POST path = "_update_by_query/#{Utils.__listify(_task_id)}/_rethrottle" params = Utils.process_params(arguments) Elasticsearch::API::Response.new( perform_request(method, path, params, body, headers) ) end |