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
@@ -5,40 +5,47 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Return the capabilities of fields among multiple indices
10
- #
11
- # @example
12
- # client.field_caps fields: '*'
13
- # # => { "fields" => "t"=>{"text"=>{"type"=>"text", "searchable"=>true, "aggregatable"=>false}} ...
8
+ # Returns the information about the capabilities of fields among multiple indices.
14
9
  #
15
10
  # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
16
11
  # @option arguments [List] :fields A comma-separated list of field names
17
12
  # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
18
13
  # @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)
19
- # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, none, all)
14
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both.
15
+ # (options: open,closed,none,all)
16
+
17
+ # @option arguments [Boolean] :include_unmapped Indicates whether unmapped fields should be included in the response.
18
+
20
19
  #
21
- # @see http://www.elastic.co/guide/en/elasticsearch/reference/master/search-field-caps.html
20
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-field-caps.html
22
21
  #
23
- def field_caps(arguments={})
24
- raise ArgumentError, "Required argument 'fields' missing" unless arguments[:fields]
25
- method = HTTP_GET
26
- path = Utils.__pathify Utils.__listify(arguments[:index]), '_field_caps'
22
+ def field_caps(arguments = {})
23
+ arguments = arguments.clone
24
+
25
+ _index = arguments.delete(:index)
26
+
27
+ method = Elasticsearch::API::HTTP_GET
28
+ path = if _index
29
+ "#{Utils.__listify(_index)}/_field_caps"
30
+ else
31
+ "_field_caps"
32
+ end
27
33
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
28
- body = arguments[:body]
29
34
 
35
+ body = nil
30
36
  perform_request(method, path, params, body).body
31
37
  end
32
38
 
33
39
  # Register this action with its valid params when the module is loaded.
34
40
  #
35
- # @since 6.1.1
41
+ # @since 6.2.0
36
42
  ParamsRegistry.register(:field_caps, [
37
- :fields,
38
- :ignore_unavailable,
39
- :allow_no_indices,
40
- :expand_wildcards,
41
- :include_unmapped ].freeze)
43
+ :fields,
44
+ :ignore_unavailable,
45
+ :allow_no_indices,
46
+ :expand_wildcards,
47
+ :include_unmapped
48
+ ].freeze)
49
+ end
42
50
  end
43
- end
44
51
  end
@@ -5,20 +5,12 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Return a specified document.
10
- #
11
- # The response contains full document, as stored in Elasticsearch, incl. `_source`, `_version`, etc.
12
- #
13
- # @example Get a document
14
- #
15
- # client.get index: 'myindex', type: 'mytype', id: '1'
8
+ # Returns a document.
16
9
  #
17
- # @option arguments [String] :id The document ID (*Required*)
18
- # @option arguments [String] :index The name of the index (*Required*)
19
- # @option arguments [String] :type The type of the document (use `_all` to fetch the first document matching the ID across all types)
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 (use `_all` to fetch the first document matching the ID across all types) *Deprecated*
20
13
  # @option arguments [List] :stored_fields A comma-separated list of stored fields to return in the response
21
- # @option arguments [String] :parent The ID of the parent document
22
14
  # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
23
15
  # @option arguments [Boolean] :realtime Specify whether to perform the operation in realtime or search mode
24
16
  # @option arguments [Boolean] :refresh Refresh the shard containing the document before performing the operation
@@ -26,28 +18,39 @@ module Elasticsearch
26
18
  # @option arguments [List] :_source True or false to return the _source field or not, or a list of fields to return
27
19
  # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field
28
20
  # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field
29
- # @option arguments [List] :_source_exclude A list of fields to exclude from the returned _source field
30
- # @option arguments [List] :_source_include A list of fields to extract and return from the _source field
31
21
  # @option arguments [Number] :version Explicit version number for concurrency control
32
- # @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
29
+ #
33
30
  #
34
- # @see http://elasticsearch.org/guide/reference/api/get/
31
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-get.html
35
32
  #
36
- def get(arguments={})
33
+ def get(arguments = {})
37
34
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
38
- raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
39
- arguments[:type] ||= DEFAULT_DOC
35
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
40
36
 
41
- method = HTTP_GET
42
- path = Utils.__pathify Utils.__escape(arguments[:index]),
43
- Utils.__escape(arguments[:type]),
44
- Utils.__escape(arguments[:id])
37
+ arguments = arguments.clone
45
38
 
46
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
47
- body = nil
39
+ _id = arguments.delete(:id)
40
+
41
+ _index = arguments.delete(:index)
48
42
 
49
- params[:fields] = Utils.__listify(params[:fields]) if params[:fields]
43
+ _type = arguments.delete(:type)
50
44
 
45
+ method = Elasticsearch::API::HTTP_GET
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
51
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
52
+
53
+ body = nil
51
54
  if Array(arguments[:ignore]).include?(404)
52
55
  Utils.__rescue_from_not_found { perform_request(method, path, params, body).body }
53
56
  else
@@ -57,21 +60,19 @@ module Elasticsearch
57
60
 
58
61
  # Register this action with its valid params when the module is loaded.
59
62
  #
60
- # @since 6.1.1
63
+ # @since 6.2.0
61
64
  ParamsRegistry.register(:get, [
62
- :stored_fields,
63
- :parent,
64
- :preference,
65
- :realtime,
66
- :refresh,
67
- :routing,
68
- :_source,
69
- :_source_excludes,
70
- :_source_includes,
71
- :_source_exclude,
72
- :_source_include,
73
- :version,
74
- :version_type ].freeze)
65
+ :stored_fields,
66
+ :preference,
67
+ :realtime,
68
+ :refresh,
69
+ :routing,
70
+ :_source,
71
+ :_source_excludes,
72
+ :_source_includes,
73
+ :version,
74
+ :version_type
75
+ ].freeze)
76
+ end
75
77
  end
76
- end
77
78
  end
@@ -5,30 +5,35 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Retrieve an indexed script from Elasticsearch
8
+ # Returns a script.
10
9
  #
11
- # @option arguments [String] :id Script ID (*Required*)
12
- # @option arguments [String] :lang Script language
10
+ # @option arguments [String] :id Script ID
11
+ # @option arguments [Time] :master_timeout Specify timeout for connection to master
12
+
13
13
  #
14
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting.html#_indexed_scripts
14
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/modules-scripting.html
15
15
  #
16
- def get_script(arguments={})
17
- raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
16
+ def get_script(arguments = {})
17
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
18
+
19
+ arguments = arguments.clone
20
+
21
+ _id = arguments.delete(:id)
22
+
18
23
  method = Elasticsearch::API::HTTP_GET
19
- path = "_scripts/#{arguments[:id]}"
20
- params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
21
- body = nil
24
+ path = "_scripts/#{Utils.__listify(_id)}"
25
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
22
26
 
27
+ body = nil
23
28
  perform_request(method, path, params, body).body
24
29
  end
25
30
 
26
-
27
31
  # Register this action with its valid params when the module is loaded.
28
32
  #
29
- # @since 6.1.1
33
+ # @since 6.2.0
30
34
  ParamsRegistry.register(:get_script, [
31
- :master_timeout ].freeze)
35
+ :master_timeout
36
+ ].freeze)
37
+ end
32
38
  end
33
- end
34
39
  end
@@ -5,19 +5,11 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Return a specified document's `_source`.
10
- #
11
- # The response contains just the original document, as passed to Elasticsearch during indexing.
12
- #
13
- # @example Get a document `_source`
8
+ # Returns the source of a document.
14
9
  #
15
- # client.get_source index: 'myindex', type: 'mytype', id: '1'
16
- #
17
- # @option arguments [String] :id The document ID (*Required*)
18
- # @option arguments [String] :index The name of the index (*Required*)
19
- # @option arguments [String] :type The type of the document; deprecated and optional starting with 7.0
20
- # @option arguments [String] :parent The ID of the parent 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 and optional starting with 7.0 *Deprecated*
21
13
  # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
22
14
  # @option arguments [Boolean] :realtime Specify whether to perform the operation in realtime or search mode
23
15
  # @option arguments [Boolean] :refresh Refresh the shard containing the document before performing the operation
@@ -26,53 +18,55 @@ module Elasticsearch
26
18
  # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field
27
19
  # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field
28
20
  # @option arguments [Number] :version Explicit version number for concurrency control
29
- # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
21
+ # @option arguments [String] :version_type Specific version type
22
+ # (options: internal,external,external_gte,force)
23
+
24
+ #
25
+ # *Deprecation notice*:
26
+ # Specifying types in urls has been deprecated
27
+ # Deprecated since version 7.0.0
30
28
  #
31
- # @see http://elasticsearch.org/guide/reference/api/get/
32
29
  #
33
- # @since 0.90.1
30
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-get.html
34
31
  #
35
- def get_source(arguments={})
32
+ def get_source(arguments = {})
36
33
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
37
- raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
38
- arguments[:type] ||= DEFAULT_DOC
34
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
39
35
 
40
- method = HTTP_GET
36
+ arguments = arguments.clone
41
37
 
42
- if arguments[:type]
43
- path = Utils.__pathify Utils.__escape(arguments[:index]),
44
- Utils.__escape(arguments[:type]),
45
- Utils.__escape(arguments[:id]),
46
- '_source'
47
- else
48
- path = Utils.__pathify Utils.__escape(arguments[:index]),
49
- '_source',
50
- Utils.__escape(arguments[:id])
51
- end
38
+ _id = arguments.delete(:id)
52
39
 
40
+ _index = arguments.delete(:index)
53
41
 
54
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
55
- body = nil
42
+ _type = arguments.delete(:type)
56
43
 
57
- params[:fields] = Utils.__listify(params[:fields]) if params[:fields]
44
+ method = Elasticsearch::API::HTTP_GET
45
+ path = if _index && _type && _id
46
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{Utils.__listify(_id)}/_source"
47
+ else
48
+ "#{Utils.__listify(_index)}/_source/#{Utils.__listify(_id)}"
49
+ end
50
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
58
51
 
52
+ body = nil
59
53
  perform_request(method, path, params, body).body
60
54
  end
61
55
 
62
56
  # Register this action with its valid params when the module is loaded.
63
57
  #
64
- # @since 6.1.1
58
+ # @since 6.2.0
65
59
  ParamsRegistry.register(:get_source, [
66
- :parent,
67
- :preference,
68
- :realtime,
69
- :refresh,
70
- :routing,
71
- :_source,
72
- :_source_excludes,
73
- :_source_includes,
74
- :version,
75
- :version_type ].freeze)
60
+ :preference,
61
+ :realtime,
62
+ :refresh,
63
+ :routing,
64
+ :_source,
65
+ :_source_excludes,
66
+ :_source_includes,
67
+ :version,
68
+ :version_type
69
+ ].freeze)
70
+ end
76
71
  end
77
- end
78
72
  end
@@ -5,109 +5,80 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
+ # Creates or updates a document in an index.
9
+ #
10
+ # @option arguments [String] :id Document ID
11
+ # @option arguments [String] :index The name of the index
12
+ # @option arguments [String] :type The type of the document *Deprecated*
13
+ # @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)
14
+ # @option arguments [String] :op_type Explicit operation type. Defaults to `index` for requests with an explicit document ID, and to `create`for requests without an explicit document ID
15
+ # (options: index,create)
16
+
17
+ # @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.
18
+ # (options: true,false,wait_for)
8
19
 
9
- # Create or update a document.
10
- #
11
- # The `index` API will either _create_ a new document, or _update_ an existing one, when a document `:id`
12
- # is passed. When creating a document, an ID will be auto-generated, when it's not passed as an argument.
13
- #
14
- # You can specifically enforce the _create_ operation by setting the `op_type` argument to `create`, or
15
- # by using the {Actions#create} method.
16
- #
17
- # Optimistic concurrency control is performed, when the `version` argument is specified. By default,
18
- # no version checks are performed.
19
- #
20
- # By default, the document will be available for {Actions#get} immediately, for {Actions#search} only
21
- # after an index refresh operation has been performed (either automatically or manually).
22
- #
23
- # @example Create or update a document `myindex/mytype/1`
24
- #
25
- # client.index index: 'myindex',
26
- # type: 'mytype',
27
- # id: '1',
28
- # body: {
29
- # title: 'Test 1',
30
- # tags: ['y', 'z'],
31
- # published: true,
32
- # published_at: Time.now.utc.iso8601,
33
- # counter: 1
34
- # }
35
- #
36
- # @example Refresh the index after the operation (useful e.g. in integration tests)
37
- #
38
- # client.index index: 'myindex', type: 'mytype', id: '1', body: { title: 'TEST' }, refresh: true
39
- # client.search index: 'myindex', q: 'title:test'
40
- #
41
- # @example Create a document with a specific expiration time (TTL)
42
- #
43
- # # Decrease the default housekeeping interval first:
44
- # client.cluster.put_settings body: { transient: { 'indices.ttl.interval' => '1s' } }
45
- #
46
- # # Enable the `_ttl` property for all types within the index
47
- # client.indices.create index: 'myindex', body: { mappings: { properties: { _ttl: { enabled: true } } } }
48
- #
49
- # client.index index: 'myindex', type: 'mytype', id: '1', body: { title: 'TEST' }, ttl: '5s'
50
- #
51
- # sleep 3 and client.get index: 'myindex', type: 'mytype', id: '1'
52
- # # => {"_index"=>"myindex" ... "_source"=>{"title"=>"TEST"}}
53
- #
54
- # sleep 3 and client.get index: 'myindex', type: 'mytype', id: '1'
55
- # # => Elasticsearch::Transport::Transport::Errors::NotFound: [404] ...
56
- #
57
- # @option arguments [String] :id Document ID (optional, will be auto-generated if missing)
58
- # @option arguments [String] :index The name of the index (*Required*)
59
- # @option arguments [String] :type The type of the document (*Required*)
60
- # @option arguments [Hash] :body The document
61
- # @option arguments [String] :consistency Explicit write consistency setting for the operation
62
- # (options: one, quorum, all)
63
- # @option arguments [Boolean] :include_type_name Whether a type should be expected in the body of the mappings.
64
- # @option arguments [String] :op_type Explicit operation type (options: index, create)
65
- # @option arguments [String] :parent ID of the parent document
66
- # @option arguments [String] :percolate Percolator queries to execute while indexing the document
67
- # @option arguments [Boolean] :refresh Refresh the index after performing the operation
68
- # @option arguments [String] :replication Specific replication type (options: sync, async)
69
20
  # @option arguments [String] :routing Specific routing value
70
21
  # @option arguments [Time] :timeout Explicit operation timeout
71
- # @option arguments [Time] :timestamp Explicit timestamp for the document
72
- # @option arguments [Duration] :ttl Expiration time for the document
73
22
  # @option arguments [Number] :version Explicit version number for concurrency control
74
- # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
23
+ # @option arguments [String] :version_type Specific version type
24
+ # (options: internal,external,external_gte)
25
+
26
+ # @option arguments [Number] :if_seq_no only perform the index operation if the last operation that has changed the document has the specified sequence number
27
+ # @option arguments [Number] :if_primary_term only perform the index operation if the last operation that has changed the document has the specified primary term
28
+ # @option arguments [String] :pipeline The pipeline id to preprocess incoming documents with
29
+
30
+ # @option arguments [Hash] :body The document (*Required*)
75
31
  #
76
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html
32
+ # *Deprecation notice*:
33
+ # Specifying types in urls has been deprecated
34
+ # Deprecated since version 7.0.0
77
35
  #
78
- def index(arguments={})
36
+ #
37
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-index_.html
38
+ #
39
+ def index(arguments = {})
40
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
79
41
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
80
- arguments[:type] ||= DEFAULT_DOC
81
- method = arguments[:id] ? HTTP_PUT : HTTP_POST
82
- path = Utils.__pathify Utils.__escape(arguments[:index]),
83
- Utils.__escape(arguments[:type]),
84
- Utils.__escape(arguments[:id])
85
42
 
43
+ arguments = arguments.clone
44
+
45
+ _id = arguments.delete(:id)
46
+
47
+ _index = arguments.delete(:index)
48
+
49
+ _type = arguments.delete(:type)
50
+
51
+ method = _id ? Elasticsearch::API::HTTP_PUT : Elasticsearch::API::HTTP_POST
52
+ path = if _index && _type && _id
53
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/#{Utils.__listify(_id)}"
54
+ elsif _index && _id
55
+ "#{Utils.__listify(_index)}/_doc/#{Utils.__listify(_id)}"
56
+ elsif _index && _type
57
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}"
58
+ else
59
+ "#{Utils.__listify(_index)}/_doc"
60
+ end
86
61
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
87
- body = arguments[:body]
62
+
63
+ body = arguments[:body]
88
64
  perform_request(method, path, params, body).body
89
65
  end
90
66
 
91
67
  # Register this action with its valid params when the module is loaded.
92
68
  #
93
- # @since 6.1.1
69
+ # @since 6.2.0
94
70
  ParamsRegistry.register(:index, [
95
- :consistency,
96
- :include_type_name,
97
- :op_type,
98
- :parent,
99
- :percolate,
100
- :pipeline,
101
- :refresh,
102
- :replication,
103
- :routing,
104
- :timeout,
105
- :timestamp,
106
- :ttl,
107
- :version,
108
- :version_type,
109
- :if_seq_no,
110
- :if_primary_term ].freeze)
71
+ :wait_for_active_shards,
72
+ :op_type,
73
+ :refresh,
74
+ :routing,
75
+ :timeout,
76
+ :version,
77
+ :version_type,
78
+ :if_seq_no,
79
+ :if_primary_term,
80
+ :pipeline
81
+ ].freeze)
82
+ end
111
83
  end
112
- end
113
84
  end
@@ -6,68 +6,39 @@ module Elasticsearch
6
6
  module API
7
7
  module Indices
8
8
  module Actions
9
-
10
- # Return the result of the analysis process (tokens)
11
- #
12
- # Allows to "test-drive" the Elasticsearch analysis process by performing the analysis on the
13
- # same text with different analyzers. An ad-hoc analysis chain can be built from specific
14
- # _tokenizer_ and _filters_.
15
- #
16
- # @example Analyze text "Quick Brown Jumping Fox" with the _snowball_ analyzer
17
- #
18
- # client.indices.analyze text: 'The Quick Brown Jumping Fox', analyzer: 'snowball'
19
- #
20
- # @example Analyze text "Quick Brown Jumping Fox" with a custom tokenizer and filter chain
21
- #
22
- # client.indices.analyze body: { text: 'The Quick Brown Jumping Fox',
23
- # tokenizer: 'whitespace',
24
- # filter: ['lowercase','stop'] }
25
- #
26
- # @note If your text for analysis is longer than 4096 bytes then you should use the :body argument, rather than :text, to avoid HTTP transport errors
27
- #
28
- # @example Analyze text "Quick <b>Brown</b> Jumping Fox" with custom tokenizer, token and character filters
29
- #
30
- # client.indices.analyze body: { text: 'The Quick <b>Brown</b> Jumping Fox',
31
- # tokenizer: 'standard',
32
- # char_filter: ['html_strip'] }
9
+ # Performs the analysis process on a text and return the tokens breakdown of the text.
33
10
  #
34
11
  # @option arguments [String] :index The name of the index to scope the operation
35
- # @option arguments [String] :body The text on which the analysis should be performed
36
- # @option arguments [String] :analyzer The name of the analyzer to use
37
- # @option arguments [String] :field Use the analyzer configured for this field
38
- # (instead of passing the analyzer name)
39
- # @option arguments [List] :filters A comma-separated list of token filters to use for the analysis.
40
- # (Also available as the `:token_filters` option)
41
- # @option arguments [List] :char_filters A comma-separated list of char filters to use for the analysis
42
- # @option arguments [Boolean] :explain Whether to output further details (default: false)
43
- # @option arguments [List] :attributes A comma-separated list of token attributes to output (use with `:explain`)
44
12
  # @option arguments [String] :index The name of the index to scope the operation
45
- # @option arguments [Boolean] :prefer_local With `true`, specify that a local shard should be used if available,
46
- # with `false`, use a random shard (default: true)
47
- # @option arguments [String] :text The text on which the analysis should be performed
48
- # (when request body is not used)
49
- # @option arguments [String] :tokenizer The name of the tokenizer to use for the analysis
13
+
14
+ # @option arguments [Hash] :body Define analyzer/tokenizer parameters and the text on which the analysis should be performed
50
15
  #
51
- # @see https://www.elastic.co/guide/reference/api/admin-indices-analyze/
16
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/indices-analyze.html
52
17
  #
53
- def analyze(arguments={})
54
- method = HTTP_GET
55
- path = Utils.__pathify Utils.__listify(arguments[:index]), '_analyze'
18
+ def analyze(arguments = {})
19
+ arguments = arguments.clone
56
20
 
57
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
58
- params[:filters] = Utils.__listify(params[:filters]) if params[:filters]
21
+ _index = arguments.delete(:index)
59
22
 
60
- body = arguments[:body]
23
+ method = Elasticsearch::API::HTTP_GET
24
+ path = if _index
25
+ "#{Utils.__listify(_index)}/_analyze"
26
+ else
27
+ "_analyze"
28
+ end
29
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
61
30
 
31
+ body = arguments[:body]
62
32
  perform_request(method, path, params, body).body
63
33
  end
64
34
 
65
35
  # Register this action with its valid params when the module is loaded.
66
36
  #
67
- # @since 6.1.1
37
+ # @since 6.2.0
68
38
  ParamsRegistry.register(:analyze, [
69
- :index ].freeze)
39
+ :index
40
+ ].freeze)
41
+ end
70
42
  end
71
- end
72
43
  end
73
44
  end