elasticsearch-api 7.3.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +16 -23
  3. data/elasticsearch-api.gemspec +1 -1
  4. data/lib/elasticsearch/api/actions/abort_benchmark.rb +1 -2
  5. data/lib/elasticsearch/api/actions/benchmark.rb +2 -3
  6. data/lib/elasticsearch/api/actions/bulk.rb +35 -68
  7. data/lib/elasticsearch/api/actions/cat/aliases.rb +30 -52
  8. data/lib/elasticsearch/api/actions/cat/allocation.rb +36 -50
  9. data/lib/elasticsearch/api/actions/cat/count.rb +25 -46
  10. data/lib/elasticsearch/api/actions/cat/fielddata.rb +31 -33
  11. data/lib/elasticsearch/api/actions/cat/health.rb +27 -37
  12. data/lib/elasticsearch/api/actions/cat/help.rb +14 -10
  13. data/lib/elasticsearch/api/actions/cat/indices.rb +45 -62
  14. data/lib/elasticsearch/api/actions/cat/master.rb +24 -34
  15. data/lib/elasticsearch/api/actions/cat/nodeattrs.rb +20 -16
  16. data/lib/elasticsearch/api/actions/cat/nodes.rb +34 -46
  17. data/lib/elasticsearch/api/actions/cat/params_registry.rb +0 -1
  18. data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +29 -35
  19. data/lib/elasticsearch/api/actions/cat/plugins.rb +21 -18
  20. data/lib/elasticsearch/api/actions/cat/recovery.rb +40 -56
  21. data/lib/elasticsearch/api/actions/cat/repositories.rb +21 -24
  22. data/lib/elasticsearch/api/actions/cat/segments.rb +29 -22
  23. data/lib/elasticsearch/api/actions/cat/shards.rb +38 -59
  24. data/lib/elasticsearch/api/actions/cat/snapshots.rb +32 -27
  25. data/lib/elasticsearch/api/actions/cat/tasks.rb +25 -19
  26. data/lib/elasticsearch/api/actions/cat/templates.rb +26 -18
  27. data/lib/elasticsearch/api/actions/cat/thread_pool.rb +36 -46
  28. data/lib/elasticsearch/api/actions/clear_scroll.rb +21 -8
  29. data/lib/elasticsearch/api/actions/cluster/allocation_explain.rb +15 -13
  30. data/lib/elasticsearch/api/actions/cluster/get_settings.rb +18 -18
  31. data/lib/elasticsearch/api/actions/cluster/health.rb +42 -44
  32. data/lib/elasticsearch/api/actions/cluster/params_registry.rb +0 -1
  33. data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +15 -17
  34. data/lib/elasticsearch/api/actions/cluster/put_settings.rb +20 -17
  35. data/lib/elasticsearch/api/actions/cluster/remote_info.rb +8 -6
  36. data/lib/elasticsearch/api/actions/cluster/reroute.rb +25 -37
  37. data/lib/elasticsearch/api/actions/cluster/state.rb +37 -41
  38. data/lib/elasticsearch/api/actions/cluster/stats.rb +20 -12
  39. data/lib/elasticsearch/api/actions/count.rb +52 -39
  40. data/lib/elasticsearch/api/actions/create.rb +25 -26
  41. data/lib/elasticsearch/api/actions/delete.rb +43 -36
  42. data/lib/elasticsearch/api/actions/delete_by_query.rb +74 -62
  43. data/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb +39 -0
  44. data/lib/elasticsearch/api/actions/delete_by_rethrottle.rb +4 -3
  45. data/lib/elasticsearch/api/actions/delete_script.rb +19 -13
  46. data/lib/elasticsearch/api/actions/exists.rb +44 -34
  47. data/lib/elasticsearch/api/actions/exists_source.rb +43 -25
  48. data/lib/elasticsearch/api/actions/explain.rb +46 -51
  49. data/lib/elasticsearch/api/actions/field_caps.rb +27 -20
  50. data/lib/elasticsearch/api/actions/get.rb +42 -41
  51. data/lib/elasticsearch/api/actions/get_script.rb +19 -14
  52. data/lib/elasticsearch/api/actions/get_source.rb +38 -44
  53. data/lib/elasticsearch/api/actions/index.rb +60 -89
  54. data/lib/elasticsearch/api/actions/indices/analyze.rb +19 -48
  55. data/lib/elasticsearch/api/actions/indices/clear_cache.rb +29 -41
  56. data/lib/elasticsearch/api/actions/indices/clone.rb +50 -0
  57. data/lib/elasticsearch/api/actions/indices/close.rb +28 -32
  58. data/lib/elasticsearch/api/actions/indices/create.rb +22 -70
  59. data/lib/elasticsearch/api/actions/indices/delete.rb +23 -35
  60. data/lib/elasticsearch/api/actions/indices/delete_alias.rb +24 -20
  61. data/lib/elasticsearch/api/actions/indices/delete_template.rb +18 -20
  62. data/lib/elasticsearch/api/actions/indices/exists.rb +32 -34
  63. data/lib/elasticsearch/api/actions/indices/exists_alias.rb +33 -29
  64. data/lib/elasticsearch/api/actions/indices/exists_template.rb +21 -16
  65. data/lib/elasticsearch/api/actions/indices/exists_type.rb +29 -29
  66. data/lib/elasticsearch/api/actions/indices/flush.rb +28 -28
  67. data/lib/elasticsearch/api/actions/indices/flush_synced.rb +23 -12
  68. data/lib/elasticsearch/api/actions/indices/forcemerge.rb +26 -41
  69. data/lib/elasticsearch/api/actions/indices/freeze.rb +7 -8
  70. data/lib/elasticsearch/api/actions/indices/get.rb +25 -19
  71. data/lib/elasticsearch/api/actions/indices/get_alias.rb +31 -23
  72. data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +42 -38
  73. data/lib/elasticsearch/api/actions/indices/get_mapping.rb +39 -31
  74. data/lib/elasticsearch/api/actions/indices/get_settings.rb +34 -37
  75. data/lib/elasticsearch/api/actions/indices/get_template.rb +21 -23
  76. data/lib/elasticsearch/api/actions/indices/get_upgrade.rb +48 -0
  77. data/lib/elasticsearch/api/actions/indices/open.rb +24 -21
  78. data/lib/elasticsearch/api/actions/indices/params_registry.rb +0 -1
  79. data/lib/elasticsearch/api/actions/indices/put_alias.rb +25 -27
  80. data/lib/elasticsearch/api/actions/indices/put_mapping.rb +40 -39
  81. data/lib/elasticsearch/api/actions/indices/put_settings.rb +30 -37
  82. data/lib/elasticsearch/api/actions/indices/put_template.rb +23 -23
  83. data/lib/elasticsearch/api/actions/indices/recovery.rb +20 -23
  84. data/lib/elasticsearch/api/actions/indices/refresh.rb +22 -26
  85. data/lib/elasticsearch/api/actions/indices/rollover.rb +28 -19
  86. data/lib/elasticsearch/api/actions/indices/segments.rb +24 -17
  87. data/lib/elasticsearch/api/actions/indices/shard_stores.rb +27 -15
  88. data/lib/elasticsearch/api/actions/indices/shrink.rb +23 -17
  89. data/lib/elasticsearch/api/actions/indices/split.rb +23 -17
  90. data/lib/elasticsearch/api/actions/indices/stats.rb +53 -104
  91. data/lib/elasticsearch/api/actions/indices/unfreeze.rb +7 -7
  92. data/lib/elasticsearch/api/actions/indices/update_aliases.rb +15 -32
  93. data/lib/elasticsearch/api/actions/indices/upgrade.rb +26 -16
  94. data/lib/elasticsearch/api/actions/indices/validate_query.rb +46 -59
  95. data/lib/elasticsearch/api/actions/info.rb +9 -6
  96. data/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb +18 -12
  97. data/lib/elasticsearch/api/actions/ingest/get_pipeline.rb +21 -11
  98. data/lib/elasticsearch/api/actions/ingest/params_registry.rb +0 -1
  99. data/lib/elasticsearch/api/actions/ingest/processor_grok.rb +12 -13
  100. data/lib/elasticsearch/api/actions/ingest/put_pipeline.rb +19 -14
  101. data/lib/elasticsearch/api/actions/ingest/simulate.rb +23 -13
  102. data/lib/elasticsearch/api/actions/mget.rb +37 -44
  103. data/lib/elasticsearch/api/actions/msearch.rb +54 -54
  104. data/lib/elasticsearch/api/actions/msearch_template.rb +46 -35
  105. data/lib/elasticsearch/api/actions/mtermvectors.rb +39 -35
  106. data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +30 -25
  107. data/lib/elasticsearch/api/actions/nodes/info.rb +29 -63
  108. data/lib/elasticsearch/api/actions/nodes/params_registry.rb +0 -1
  109. data/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb +24 -22
  110. data/lib/elasticsearch/api/actions/nodes/shutdown.rb +4 -4
  111. data/lib/elasticsearch/api/actions/nodes/stats.rb +43 -36
  112. data/lib/elasticsearch/api/actions/nodes/usage.rb +31 -10
  113. data/lib/elasticsearch/api/actions/params_registry.rb +0 -1
  114. data/lib/elasticsearch/api/actions/ping.rb +12 -13
  115. data/lib/elasticsearch/api/actions/put_script.rb +26 -30
  116. data/lib/elasticsearch/api/actions/rank_eval.rb +24 -15
  117. data/lib/elasticsearch/api/actions/reindex.rb +25 -48
  118. data/lib/elasticsearch/api/actions/reindex_rethrottle.rb +18 -12
  119. data/lib/elasticsearch/api/actions/remote/info.rb +1 -2
  120. data/lib/elasticsearch/api/actions/render_search_template.rb +17 -15
  121. data/lib/elasticsearch/api/actions/scripts_painless_execute.rb +8 -6
  122. data/lib/elasticsearch/api/actions/scroll.rb +28 -51
  123. data/lib/elasticsearch/api/actions/search.rb +104 -165
  124. data/lib/elasticsearch/api/actions/search_shards.rb +31 -28
  125. data/lib/elasticsearch/api/actions/search_template.rb +48 -40
  126. data/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb +44 -0
  127. data/lib/elasticsearch/api/actions/snapshot/create.rb +22 -29
  128. data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +19 -24
  129. data/lib/elasticsearch/api/actions/snapshot/delete.rb +20 -22
  130. data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +16 -18
  131. data/lib/elasticsearch/api/actions/snapshot/get.rb +22 -31
  132. data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +21 -25
  133. data/lib/elasticsearch/api/actions/snapshot/params_registry.rb +0 -1
  134. data/lib/elasticsearch/api/actions/snapshot/restore.rb +21 -32
  135. data/lib/elasticsearch/api/actions/snapshot/status.rb +23 -24
  136. data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +18 -13
  137. data/lib/elasticsearch/api/actions/tasks/cancel.rb +19 -13
  138. data/lib/elasticsearch/api/actions/tasks/get.rb +16 -13
  139. data/lib/elasticsearch/api/actions/tasks/list.rb +20 -18
  140. data/lib/elasticsearch/api/actions/tasks/params_registry.rb +0 -1
  141. data/lib/elasticsearch/api/actions/termvectors.rb +52 -70
  142. data/lib/elasticsearch/api/actions/update.rb +53 -98
  143. data/lib/elasticsearch/api/actions/update_by_query.rb +77 -66
  144. data/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb +17 -11
  145. data/lib/elasticsearch/api/version.rb +1 -1
  146. data/spec/elasticsearch/api/actions/cat/segments_spec.rb +9 -11
  147. data/spec/elasticsearch/api/actions/cluster/put_settings_spec.rb +1 -1
  148. data/spec/elasticsearch/api/actions/count_spec.rb +8 -8
  149. data/spec/elasticsearch/api/actions/delete_by_query_spec.rb +12 -7
  150. data/spec/elasticsearch/api/actions/delete_script_spec.rb +0 -14
  151. data/spec/elasticsearch/api/actions/exists_document_spec.rb +1 -1
  152. data/spec/elasticsearch/api/actions/get_document_source_spec.rb +1 -1
  153. data/spec/elasticsearch/api/actions/index_document_spec.rb +6 -15
  154. data/spec/elasticsearch/api/actions/indices/analyze_spec.rb +0 -4
  155. data/spec/elasticsearch/api/actions/indices/clear_cache_spec.rb +1 -5
  156. data/spec/elasticsearch/api/actions/indices/clone_spec.rb +109 -0
  157. data/spec/elasticsearch/api/actions/indices/delete_alias_spec.rb +2 -2
  158. data/spec/elasticsearch/api/actions/indices/get_spec.rb +0 -11
  159. data/spec/elasticsearch/api/actions/indices/put_alias_spec.rb +3 -3
  160. data/spec/elasticsearch/api/actions/indices/put_mapping_spec.rb +3 -3
  161. data/spec/elasticsearch/api/actions/indices/stats_spec.rb +0 -1
  162. data/spec/elasticsearch/api/actions/nodes/hot_threads_spec.rb +3 -3
  163. data/spec/elasticsearch/api/actions/put_script_spec.rb +20 -15
  164. data/spec/elasticsearch/api/actions/render_search_template_spec.rb +23 -7
  165. data/spec/elasticsearch/api/actions/scroll_spec.rb +37 -0
  166. data/spec/elasticsearch/api/actions/search_spec.rb +0 -15
  167. data/spec/elasticsearch/api/actions/tasks/list_spec.rb +0 -11
  168. data/spec/elasticsearch/api/actions/update_document_spec.rb +3 -7
  169. data/spec/elasticsearch/api/rest_api_yaml_spec.rb +1 -1
  170. data/spec/rest_yaml_tests_helper.rb +12 -0
  171. data/utils/Gemfile +1 -0
  172. data/utils/Thorfile +0 -1
  173. data/utils/thor/generate_source.rb +192 -85
  174. data/utils/thor/generator/endpoint_specifics.rb +157 -0
  175. data/utils/thor/generator/files_helper.rb +37 -0
  176. data/utils/thor/lister.rb +3 -4
  177. data/utils/thor/templates/_documentation_top.erb +27 -0
  178. data/utils/thor/templates/_method_setup.erb +35 -0
  179. data/utils/thor/templates/_params_registry.erb +12 -0
  180. data/utils/thor/templates/_perform_request.erb +37 -0
  181. data/utils/thor/templates/method.erb +59 -0
  182. data/utils/thor/templates/{ruby/test.erb → test.erb} +0 -0
  183. data/utils/thor/templates/{ruby/test_helper.rb → test_helper.rb} +0 -0
  184. metadata +31 -14
  185. data/spec/elasticsearch/api/actions/scoll_spec.rb +0 -21
  186. data/utils/thor/generate_api.rb +0 -193
  187. data/utils/thor/templates/ruby/method.erb +0 -62
@@ -6,56 +6,44 @@ module Elasticsearch
6
6
  module API
7
7
  module Cluster
8
8
  module Actions
9
-
10
- # Perform manual shard allocation in the cluster.
11
- #
12
- # Pass the operations you want to perform in the `:body` option. Use the `dry_run` option to
13
- # evaluate the result of operations without actually performing them.
14
- #
15
- # @example Move shard `0` of index `myindex` from node named _Node1_ to node named _Node2_
9
+ # Allows to manually change the allocation of individual shards in the cluster.
16
10
  #
17
- # client.cluster.reroute body: {
18
- # commands: [
19
- # { move: { index: 'myindex', shard: 0, from_node: 'Node1', to_node: 'Node2' } }
20
- # ]
21
- # }
22
- #
23
- # @note If you want to explicitly set the shard allocation to a certain node, you might
24
- # want to look at the `allocation.*` cluster settings.
25
- #
26
- # @option arguments [Hash] :body The definition of `commands` to perform (`move`, `cancel`, `allocate`)
27
11
  # @option arguments [Boolean] :dry_run Simulate the operation only and return the resulting state
28
- # @option arguments [Boolean] :explain Return an explanation for why the commands can or cannot be executed
29
- # @option arguments [Boolean] :metric Limit the information returned to the specified metrics.
30
- # Defaults to all but metadata. (Options: _all, blocks, metadata,
31
- # nodes, routing_table, master_node, version)
32
- # @option arguments [Time] :master_timeout Specify timeout for connection to master
33
- # @option arguments [Boolean] :retry_failed Retries allocation of shards that are blocked due to too many
34
- # subsequent allocation failures
12
+ # @option arguments [Boolean] :explain Return an explanation of why the commands can or cannot be executed
13
+ # @option arguments [Boolean] :retry_failed Retries allocation of shards that are blocked due to too many subsequent allocation failures
14
+ # @option arguments [List] :metric Limit the information returned to the specified metrics. Defaults to all but metadata
15
+ # (options: _all,blocks,metadata,nodes,routing_table,master_node,version)
16
+
17
+ # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
18
+ # @option arguments [Time] :timeout Explicit operation timeout
19
+
20
+ # @option arguments [Hash] :body The definition of `commands` to perform (`move`, `cancel`, `allocate`)
35
21
  #
36
- # @see http://elasticsearch.org/guide/reference/api/admin-cluster-reroute/
22
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/cluster-reroute.html
37
23
  #
38
- def reroute(arguments={})
39
- method = HTTP_POST
40
- path = "_cluster/reroute"
24
+ def reroute(arguments = {})
25
+ arguments = arguments.clone
41
26
 
27
+ method = Elasticsearch::API::HTTP_POST
28
+ path = "_cluster/reroute"
42
29
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
43
- body = arguments[:body] || {}
44
30
 
31
+ body = arguments[:body] || {}
45
32
  perform_request(method, path, params, body).body
46
33
  end
47
34
 
48
35
  # Register this action with its valid params when the module is loaded.
49
36
  #
50
- # @since 6.1.1
37
+ # @since 6.2.0
51
38
  ParamsRegistry.register(:reroute, [
52
- :dry_run,
53
- :explain,
54
- :retry_failed,
55
- :metric,
56
- :master_timeout,
57
- :timeout ].freeze)
39
+ :dry_run,
40
+ :explain,
41
+ :retry_failed,
42
+ :metric,
43
+ :master_timeout,
44
+ :timeout
45
+ ].freeze)
46
+ end
58
47
  end
59
- end
60
48
  end
61
49
  end
@@ -6,64 +6,60 @@ module Elasticsearch
6
6
  module API
7
7
  module Cluster
8
8
  module Actions
9
-
10
- # Get information about the cluster state (indices settings, allocations, etc)
11
- #
12
- # @example
13
- #
14
- # client.cluster.state
9
+ # Returns a comprehensive information about the state of the cluster.
15
10
  #
16
- # @option arguments [List] :index A comma-separated list of index names; use `_all` or omit to
17
- # perform the operation on all indices
18
11
  # @option arguments [List] :metric Limit the information returned to the specified metrics
19
- # (options: _all, blocks, index_templates, metadata, nodes, routing_table,
20
- # master_node, version)
21
- # @option arguments [List] :index_templates A comma separated list to return specific index templates when
22
- # returning metadata
23
- # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node
24
- # (default: false)
12
+ # (options: _all,blocks,metadata,nodes,routing_table,routing_nodes,master_node,version)
13
+
14
+ # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
15
+ # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
25
16
  # @option arguments [Time] :master_timeout Specify timeout for connection to master
26
- # @option arguments [String] :expand_wildcards Whether to expand wildcard expression for inidices
27
- # (options: open, closed)
17
+ # @option arguments [Boolean] :flat_settings Return settings in flat format (default: false)
18
+ # @option arguments [Number] :wait_for_metadata_version Wait for the metadata version to be equal or greater than the specified metadata version
19
+ # @option arguments [Time] :wait_for_timeout The maximum time to wait for wait_for_metadata_version before timing out
20
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
28
21
  # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
29
- # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
30
- # unavailable (missing, closed, etc)
22
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both.
23
+ # (options: open,closed,none,all)
24
+
31
25
  #
32
- # @see http://elasticsearch.org/guide/reference/api/admin-cluster-state/
26
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/cluster-state.html
33
27
  #
34
- def state(arguments={})
28
+ def state(arguments = {})
35
29
  arguments = arguments.clone
36
- index = arguments.delete(:index)
37
- metric = arguments.delete(:metric)
38
- method = HTTP_GET
39
- path = Utils.__pathify '_cluster/state',
40
- Utils.__listify(metric),
41
- Utils.__listify(index)
42
30
 
43
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
31
+ _metric = arguments.delete(:metric)
44
32
 
45
- [:index_templates].each do |key|
46
- params[key] = Utils.__listify(params[key]) if params[key]
47
- end
33
+ _index = arguments.delete(:index)
48
34
 
49
- body = nil
35
+ method = Elasticsearch::API::HTTP_GET
36
+ path = if _metric && _index
37
+ "_cluster/state/#{Utils.__listify(_metric)}/#{Utils.__listify(_index)}"
38
+ elsif _metric
39
+ "_cluster/state/#{Utils.__listify(_metric)}"
40
+ else
41
+ "_cluster/state"
42
+ end
43
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
50
44
 
45
+ body = nil
51
46
  perform_request(method, path, params, body).body
52
47
  end
53
48
 
54
49
  # Register this action with its valid params when the module is loaded.
55
50
  #
56
- # @since 6.1.1
51
+ # @since 6.2.0
57
52
  ParamsRegistry.register(:state, [
58
- :local,
59
- :master_timeout,
60
- :flat_settings,
61
- :wait_for_metadata_version,
62
- :wait_for_timeout,
63
- :ignore_unavailable,
64
- :allow_no_indices,
65
- :expand_wildcards ].freeze)
53
+ :local,
54
+ :master_timeout,
55
+ :flat_settings,
56
+ :wait_for_metadata_version,
57
+ :wait_for_timeout,
58
+ :ignore_unavailable,
59
+ :allow_no_indices,
60
+ :expand_wildcards
61
+ ].freeze)
62
+ end
66
63
  end
67
- end
68
64
  end
69
65
  end
@@ -6,32 +6,40 @@ module Elasticsearch
6
6
  module API
7
7
  module Cluster
8
8
  module Actions
9
-
10
- # Returns statistical information about the cluster
9
+ # Returns high-level overview of cluster statistics.
11
10
  #
12
11
  # @option arguments [List] :node_id A comma-separated list of node IDs or names to limit the returned information; use `_local` to return information from the node you're connecting to, leave empty to get information from all nodes
13
12
  # @option arguments [Boolean] :flat_settings Return settings in flat format (default: false)
14
- # @option arguments [Boolean] :human Whether to return time and byte values in human-readable format.
15
13
  # @option arguments [Time] :timeout Explicit operation timeout
14
+
16
15
  #
17
- # @see http://www.elastic.co/guide/en/elasticsearch/reference/master/cluster-stats.html
16
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/cluster-stats.html
18
17
  #
19
- def stats(arguments={})
20
- method = 'GET'
21
- path = "_cluster/stats"
18
+ def stats(arguments = {})
19
+ arguments = arguments.clone
20
+
21
+ _node_id = arguments.delete(:node_id)
22
+
23
+ method = Elasticsearch::API::HTTP_GET
24
+ path = if _node_id
25
+ "_cluster/stats/nodes/#{Utils.__listify(_node_id)}"
26
+ else
27
+ "_cluster/stats"
28
+ end
22
29
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
23
- body = nil
24
30
 
31
+ body = nil
25
32
  perform_request(method, path, params, body).body
26
33
  end
27
34
 
28
35
  # Register this action with its valid params when the module is loaded.
29
36
  #
30
- # @since 6.1.1
37
+ # @since 6.2.0
31
38
  ParamsRegistry.register(:stats, [
32
- :flat_settings,
33
- :timeout ].freeze)
39
+ :flat_settings,
40
+ :timeout
41
+ ].freeze)
42
+ end
34
43
  end
35
- end
36
44
  end
37
45
  end
@@ -5,70 +5,83 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Get the number of documents for the cluster, index, type, or a query.
10
- #
11
- # @example Get the number of all documents in the cluster
12
- #
13
- # client.count
14
- #
15
- # @example Get the number of documents in a specified index
16
- #
17
- # client.count index: 'myindex'
18
- #
19
- # @example Get the number of documents matching a specific query
20
- #
21
- # index: 'my_index', body: { filtered: { filter: { terms: { foo: ['bar'] } } } }
22
- #
8
+ # Returns number of documents matching a query.
23
9
  #
24
10
  # @option arguments [List] :index A comma-separated list of indices to restrict the results
25
11
  # @option arguments [List] :type A comma-separated list of types to restrict the results
26
- # @option arguments [Hash] :body A query to restrict the results specified with the Query DSL (optional)
27
12
  # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
28
13
  # @option arguments [Boolean] :ignore_throttled Whether specified concrete, expanded or aliased indices should be ignored when throttled
29
14
  # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes `_all` string or when no indices have been specified)
30
- # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, none, all)
15
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both.
16
+ # (options: open,closed,none,all)
17
+
31
18
  # @option arguments [Number] :min_score Include only documents with a specific `_score` value in the result
32
19
  # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
33
20
  # @option arguments [List] :routing A comma-separated list of specific routing values
34
21
  # @option arguments [String] :q Query in the Lucene query string syntax
35
22
  # @option arguments [String] :analyzer The analyzer to use for the query string
36
23
  # @option arguments [Boolean] :analyze_wildcard Specify whether wildcard and prefix queries should be analyzed (default: false)
37
- # @option arguments [String] :default_operator The default operator for query string query (AND or OR) (options: AND, OR)
24
+ # @option arguments [String] :default_operator The default operator for query string query (AND or OR)
25
+ # (options: AND,OR)
26
+
38
27
  # @option arguments [String] :df The field to use as default where no field prefix is given in the query string
39
28
  # @option arguments [Boolean] :lenient Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
40
29
  # @option arguments [Number] :terminate_after The maximum count for each shard, upon reaching which the query execution will terminate early
30
+
31
+ # @option arguments [Hash] :body A query to restrict the results specified with the Query DSL (optional)
32
+ #
33
+ # *Deprecation notice*:
34
+ # Specifying types in urls has been deprecated
35
+ # Deprecated since version 7.0.0
41
36
  #
42
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-count.html
43
37
  #
44
- def count(arguments={})
45
- method = HTTP_GET
46
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_count' )
38
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-count.html
39
+ #
40
+ def count(arguments = {})
41
+ arguments = arguments.clone
42
+
43
+ _index = arguments.delete(:index)
47
44
 
45
+ _type = arguments.delete(:type)
46
+
47
+ method = if arguments[:body]
48
+ Elasticsearch::API::HTTP_POST
49
+ else
50
+ Elasticsearch::API::HTTP_GET
51
+ end
52
+
53
+ path = if _index && _type
54
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_count"
55
+ elsif _index
56
+ "#{Utils.__listify(_index)}/_count"
57
+ else
58
+ "_count"
59
+ end
48
60
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
49
- body = arguments[:body]
50
61
 
62
+ body = arguments[:body]
51
63
  perform_request(method, path, params, body).body
52
64
  end
53
65
 
54
66
  # Register this action with its valid params when the module is loaded.
55
67
  #
56
- # @since 6.1.1
68
+ # @since 6.2.0
57
69
  ParamsRegistry.register(:count, [
58
- :ignore_unavailable,
59
- :ignore_throttled,
60
- :allow_no_indices,
61
- :expand_wildcards,
62
- :min_score,
63
- :preference,
64
- :routing,
65
- :q,
66
- :analyzer,
67
- :analyze_wildcard,
68
- :default_operator,
69
- :df,
70
- :lenient,
71
- :terminate_after ].freeze)
70
+ :ignore_unavailable,
71
+ :ignore_throttled,
72
+ :allow_no_indices,
73
+ :expand_wildcards,
74
+ :min_score,
75
+ :preference,
76
+ :routing,
77
+ :q,
78
+ :analyzer,
79
+ :analyze_wildcard,
80
+ :default_operator,
81
+ :df,
82
+ :lenient,
83
+ :terminate_after
84
+ ].freeze)
85
+ end
72
86
  end
73
- end
74
87
  end
@@ -5,42 +5,41 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Create a new document.
10
- #
11
- # The API will create new document, if it doesn't exist yet -- in that case, it will return
12
- # a `409` error (`version_conflict_engine_exception`).
13
- #
14
- # You can leave out the `:id` parameter for the ID to be generated automatically
15
- #
16
- # @example Create a document with an ID
8
+ # Creates a new document in the index.
17
9
  #
18
- # client.create index: 'myindex',
19
- # type: 'doc',
20
- # id: '1',
21
- # body: {
22
- # title: 'Test 1'
23
- # }
10
+ # Returns a 409 response when a document with a same ID already exists in the index.
24
11
  #
25
- # @example Create a document with an auto-generated ID
12
+ # @option arguments [String] :id Document ID
13
+ # @option arguments [String] :index The name of the index
14
+ # @option arguments [String] :type The type of the document *Deprecated*
15
+ # @option arguments [String] :wait_for_active_shards Sets the number of shard copies that must be active before proceeding with the index operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)
16
+ # @option arguments [String] :refresh If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.
17
+ # (options: true,false,wait_for)
18
+
19
+ # @option arguments [String] :routing Specific routing value
20
+ # @option arguments [Time] :timeout Explicit operation timeout
21
+ # @option arguments [Number] :version Explicit version number for concurrency control
22
+ # @option arguments [String] :version_type Specific version type
23
+ # (options: internal,external,external_gte)
24
+
25
+ # @option arguments [String] :pipeline The pipeline id to preprocess incoming documents with
26
+
27
+ # @option arguments [Hash] :body The document (*Required*)
26
28
  #
27
- # client.create index: 'myindex',
28
- # type: 'doc',
29
- # body: {
30
- # title: 'Test 1'
31
- # }
29
+ # *Deprecation notice*:
30
+ # Specifying types in urls has been deprecated
31
+ # Deprecated since version 7.0.0
32
32
  #
33
- # @option (see Actions#index)
34
33
  #
35
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html#_automatic_id_generation
34
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-index_.html
36
35
  #
37
- def create(arguments={})
36
+ def create(arguments = {})
38
37
  if arguments[:id]
39
- index arguments.update :op_type => 'create'
38
+ index arguments.update op_type: 'create'
40
39
  else
41
40
  index arguments
42
41
  end
43
42
  end
44
43
  end
45
- end
44
+ end
46
45
  end
@@ -5,45 +5,52 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Delete a single document.
10
- #
11
- # @example Delete a document
12
- #
13
- # client.delete index: 'myindex', type: 'mytype', id: '1'
14
- #
15
- # @example Delete a document with specific routing
8
+ # Removes a document from the index.
16
9
  #
17
- # client.delete index: 'myindex', type: 'mytype', id: '1', routing: 'abc123'
18
- #
19
- # @option arguments [String] :id The document ID (*Required*)
20
- # @option arguments [String] :index The name of the index (*Required*)
21
- # @option arguments [String] :type The type of the document
10
+ # @option arguments [String] :id The document ID
11
+ # @option arguments [String] :index The name of the index
12
+ # @option arguments [String] :type The type of the document *Deprecated*
22
13
  # @option arguments [String] :wait_for_active_shards Sets the number of shard copies that must be active before proceeding with the delete operation. Defaults to 1, meaning the primary shard only. Set to `all` for all shard copies, otherwise set to any non-negative value less than or equal to the total number of copies for the shard (number of replicas + 1)
23
- # @option arguments [String] :parent ID of parent document
24
- # @option arguments [String] :refresh If `true` then refresh the effected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes. (options: true, false, wait_for)
14
+ # @option arguments [String] :refresh If `true` then refresh the affected shards to make this operation visible to search, if `wait_for` then wait for a refresh to make this operation visible to search, if `false` (the default) then do nothing with refreshes.
15
+ # (options: true,false,wait_for)
16
+
25
17
  # @option arguments [String] :routing Specific routing value
26
18
  # @option arguments [Time] :timeout Explicit operation timeout
27
19
  # @option arguments [Number] :if_seq_no only perform the delete operation if the last operation that has changed the document has the specified sequence number
28
20
  # @option arguments [Number] :if_primary_term only perform the delete operation if the last operation that has changed the document has the specified primary term
29
21
  # @option arguments [Number] :version Explicit version number for concurrency control
30
- # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
22
+ # @option arguments [String] :version_type Specific version type
23
+ # (options: internal,external,external_gte,force)
24
+
25
+ #
26
+ # *Deprecation notice*:
27
+ # Specifying types in urls has been deprecated
28
+ # Deprecated since version 7.0.0
31
29
  #
32
- # @see http://elasticsearch.org/guide/reference/api/delete/
33
30
  #
34
- def delete(arguments={})
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-delete.html
32
+ #
33
+ def delete(arguments = {})
35
34
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
36
- raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
37
- arguments[:type] ||= DEFAULT_DOC
35
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
36
+
37
+ arguments = arguments.clone
38
+
39
+ _id = arguments.delete(:id)
40
+
41
+ _index = arguments.delete(:index)
38
42
 
39
- method = HTTP_DELETE
40
- path = Utils.__pathify Utils.__escape(arguments[:index]),
41
- Utils.__escape(arguments[:type]),
42
- Utils.__escape(arguments[:id])
43
+ _type = arguments.delete(:type)
43
44
 
45
+ method = Elasticsearch::API::HTTP_DELETE
46
+ path = if _index && _type && _id
47
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{Utils.__listify(_id)}"
48
+ else
49
+ "#{Utils.__listify(_index)}/_doc/#{Utils.__listify(_id)}"
50
+ end
44
51
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
45
- body = nil
46
52
 
53
+ body = nil
47
54
  if Array(arguments[:ignore]).include?(404)
48
55
  Utils.__rescue_from_not_found { perform_request(method, path, params, body).body }
49
56
  else
@@ -53,17 +60,17 @@ module Elasticsearch
53
60
 
54
61
  # Register this action with its valid params when the module is loaded.
55
62
  #
56
- # @since 6.1.1
63
+ # @since 6.2.0
57
64
  ParamsRegistry.register(:delete, [
58
- :wait_for_active_shards,
59
- :parent,
60
- :refresh,
61
- :routing,
62
- :timeout,
63
- :if_seq_no,
64
- :if_primary_term,
65
- :version,
66
- :version_type ].freeze)
65
+ :wait_for_active_shards,
66
+ :refresh,
67
+ :routing,
68
+ :timeout,
69
+ :if_seq_no,
70
+ :if_primary_term,
71
+ :version,
72
+ :version_type
73
+ ].freeze)
74
+ end
67
75
  end
68
- end
69
76
  end