elasticsearch-api 7.3.0 → 7.5.0

Sign up to get free protection for your applications and to get access to all the features.
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,200 +5,139 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Return documents matching a query, as well as aggregations (facets), highlighted snippets, suggestions, etc.
10
- #
11
- # The search API is used to query one or more indices either using simple
12
- # [query string queries](https://www.elastic.co/guide/reference/api/search/uri-request/)
13
- # as the `:q` argument , or by passing the
14
- # [full request definition](https://www.elastic.co/guide/reference/api/search/request-body/)
15
- # in the [Query DSL](https://www.elastic.co/guide/reference/query-dsl/) as the `:body` argument.
16
- #
17
- # @example Search with a simple query string query
18
- #
19
- # client.search index: 'myindex', q: 'title:test'
20
- #
21
- # @example Passing a full request definition in the Elasticsearch's Query DSL as a `Hash`
22
- #
23
- # client.search index: 'myindex',
24
- # body: {
25
- # query: { match: { title: 'test' } },
26
- # aggregations: { tags: { terms: { field: 'tags' } } }
27
- # }
28
- #
29
- # @example Paginating results: return 10 documents, beginning from the 10th
30
- #
31
- # client.search index: 'myindex',
32
- # body: {
33
- # query: { match: { title: 'test' } },
34
- # from: 10,
35
- # size: 10
36
- # }
37
- #
38
- # @example Passing the search definition as a `String`, built with a JSON builder
39
- #
40
- # require 'jbuilder'
41
- #
42
- # json = Jbuilder.encode do |json|
43
- # json.query do
44
- # json.match do
45
- # json.title do
46
- # json.query 'test 1'
47
- # json.operator 'and'
48
- # end
49
- # end
50
- # end
51
- # end
52
- #
53
- # client.search index: 'myindex', body: json
54
- #
55
- # @example Wrapping the result in [`Hashie::Mash`](https://github.com/intridea/hashie) for easier access
56
- #
57
- # response = client.search index: 'myindex',
58
- # body: {
59
- # query: { match: { title: 'test' } },
60
- # aggregations: { tags: { terms: { field: 'tags' } } }
61
- # }
62
- #
63
- # response = Hashie::Mash.new response
8
+ # Returns results matching a query.
64
9
  #
65
- # response.hits.hits.first._source.title
66
- #
67
- # response.aggregations.tags.terms.to_a.map { |f| "#{f.term} [#{f.count}]" }.join(', ')
68
- #
69
- # @option arguments [List] :index A comma-separated list of index names to search; use `_all`
70
- # or empty string to perform the operation on all indices
71
- # @option arguments [List] :type A comma-separated list of document types to search;
72
- # leave empty to perform the operation on all types
73
- # @option arguments [Hash] :body The search definition using the Query DSL
10
+ # @option arguments [List] :index A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
11
+ # @option arguments [List] :type A comma-separated list of document types to search; leave empty to perform the operation on all types
74
12
  # @option arguments [String] :analyzer The analyzer to use for the query string
75
- # @option arguments [Boolean] :analyze_wildcard Specify whether wildcard and prefix queries should be analyzed
76
- # (default: false)
13
+ # @option arguments [Boolean] :analyze_wildcard Specify whether wildcard and prefix queries should be analyzed (default: false)
14
+ # @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
77
15
  # @option arguments [String] :default_operator The default operator for query string query (AND or OR)
78
- # (options: AND, OR)
16
+ # (options: AND,OR)
17
+
79
18
  # @option arguments [String] :df The field to use as default where no field prefix is given in the query string
80
- # @option arguments [Boolean] :explain Specify whether to return detailed information about score computation
81
- # as part of a hit
82
- # @option arguments [List] :fields A comma-separated list of fields to return as part of a hit
83
- # @option arguments [List] :fielddata_fields A comma-separated list of fields to return as the field data
84
- # representation of a field for each hit
85
- # @option arguments [List] :docvalue_fields A comma-separated list of fields to return as the docvalue
86
- # representation of a field for each hit
19
+ # @option arguments [Boolean] :explain Specify whether to return detailed information about score computation as part of a hit
87
20
  # @option arguments [List] :stored_fields A comma-separated list of stored fields to return as part of a hit
21
+ # @option arguments [List] :docvalue_fields A comma-separated list of fields to return as the docvalue representation of a field for each hit
88
22
  # @option arguments [Number] :from Starting offset (default: 0)
89
- # @option arguments [Boolean] :include_type_name Whether a type should be expected in the body of the mappings.
90
- # @option arguments [String] :ignore_indices When performed on multiple indices, allows to ignore `missing` ones
91
- # (options: none, missing)
92
- # @option arguments [Boolean] :lenient Specify whether format-based query failures
93
- # (such as providing text to a numeric field) should be ignored
94
- # @option arguments [Boolean] :lowercase_expanded_terms Specify whether query terms should be lowercased
95
- # @option arguments [String] :preference Specify the node or shard the operation should be performed on
96
- # (default: random)
23
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
24
+ # @option arguments [Boolean] :ignore_throttled Whether specified concrete, expanded or aliased indices should be ignored when throttled
25
+ # @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)
26
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both.
27
+ # (options: open,closed,none,all)
28
+
29
+ # @option arguments [Boolean] :lenient Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
30
+ # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
97
31
  # @option arguments [String] :q Query in the Lucene query string syntax
98
- # @option arguments [Boolean] :request_cache Specify if request cache should be used for this request
99
- # (defaults to index level setting)
100
32
  # @option arguments [List] :routing A comma-separated list of specific routing values
101
- # @option arguments [Duration] :scroll Specify how long a consistent view of the index should be maintained
102
- # for scrolled search
103
- # @option arguments [String] :search_type Search operation type (options: query_then_fetch, query_and_fetch,
104
- # dfs_query_then_fetch, dfs_query_and_fetch, count, scan)
33
+ # @option arguments [Time] :scroll Specify how long a consistent view of the index should be maintained for scrolled search
34
+ # @option arguments [String] :search_type Search operation type
35
+ # (options: query_then_fetch,dfs_query_then_fetch)
36
+
105
37
  # @option arguments [Number] :size Number of hits to return (default: 10)
106
38
  # @option arguments [List] :sort A comma-separated list of <field>:<direction> pairs
107
- # @option arguments [String] :source The URL-encoded request definition using the Query DSL
108
- # (instead of using request body)
109
- # @option arguments [String] :_source Specify whether the _source field should be returned,
110
- # or a list of fields to return
111
- # @option arguments [String] :_source_exclude A list of fields to exclude from the returned _source field
112
- # @option arguments [String] :_source_include A list of fields to extract and return from the _source field
113
- # @option arguments [List] :stored_fields A comma-separated list of stored fields to return in the response
39
+ # @option arguments [List] :_source True or false to return the _source field or not, or a list of fields to return
40
+ # @option arguments [List] :_source_excludes A list of fields to exclude from the returned _source field
41
+ # @option arguments [List] :_source_includes A list of fields to extract and return from the _source field
42
+ # @option arguments [Number] :terminate_after The maximum number of documents to collect for each shard, upon reaching which the query execution will terminate early.
114
43
  # @option arguments [List] :stats Specific 'tag' of the request for logging and statistical purposes
115
44
  # @option arguments [String] :suggest_field Specify which field to use for suggestions
116
- # @option arguments [String] :suggest_mode Specify suggest mode (options: missing, popular, always)
45
+ # @option arguments [String] :suggest_mode Specify suggest mode
46
+ # (options: missing,popular,always)
47
+
117
48
  # @option arguments [Number] :suggest_size How many suggestions to return in response
118
- # @option arguments [Text] :suggest_text The source text for which the suggestions should be returned
119
- # @option arguments [Number] :terminate_after The maximum number of documents to collect for each shard
49
+ # @option arguments [String] :suggest_text The source text for which the suggestions should be returned
120
50
  # @option arguments [Time] :timeout Explicit operation timeout
51
+ # @option arguments [Boolean] :track_scores Whether to calculate and return scores even if they are not used for sorting
52
+ # @option arguments [Boolean] :track_total_hits Indicate if the number of documents that match the query should be tracked
53
+ # @option arguments [Boolean] :allow_partial_search_results Indicate if an error should be returned if there is a partial search failure or timeout
121
54
  # @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
122
55
  # @option arguments [Boolean] :version Specify whether to return document version as part of a hit
56
+ # @option arguments [Boolean] :seq_no_primary_term Specify whether to return sequence number and primary term of the last modification of each hit
57
+ # @option arguments [Boolean] :request_cache Specify if request cache should be used for this request or not, defaults to index level setting
123
58
  # @option arguments [Number] :batched_reduce_size The number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection mechanism to reduce the memory overhead per search request if the potential number of shards in the request can be large.
124
- # @option arguments [Number] :max_concurrent_shard_requests The number of concurrent shard requests this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests. The default grows with the number of nodes in the cluster but is at most 256.
125
- # @option arguments [Number] :pre_filter_shard_size A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint. (Default: 128)
59
+ # @option arguments [Number] :max_concurrent_shard_requests The number of concurrent shard requests per node this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests
60
+ # @option arguments [Number] :pre_filter_shard_size A threshold that enforces a pre-filter roundtrip to prefilter search shards based on query rewriting if the number of shards the search request expands to exceeds the threshold. This filter roundtrip can limit the number of shards significantly if for instance a shard can not match any documents based on it's rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.
61
+ # @option arguments [Boolean] :rest_total_hits_as_int Indicates whether hits.total should be rendered as an integer or an object in the rest search response
62
+
63
+ # @option arguments [Hash] :body The search definition using the Query DSL
126
64
  #
127
- # @return [Hash]
65
+ # *Deprecation notice*:
66
+ # Specifying types in urls has been deprecated
67
+ # Deprecated since version 7.0.0
128
68
  #
129
- # @see https://www.elastic.co/guide/reference/api/search/
130
- # @see https://www.elastic.co/guide/reference/api/search/request-body/
131
69
  #
132
- def search(arguments={})
133
- arguments[:index] = UNDERSCORE_ALL if ! arguments[:index] && arguments[:type]
134
- method = HTTP_GET
135
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), UNDERSCORE_SEARCH )
136
-
137
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
70
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-search.html
71
+ #
72
+ def search(arguments = {})
73
+ arguments = arguments.clone
74
+ arguments[:index] = UNDERSCORE_ALL if !arguments[:index] && arguments[:type]
138
75
 
139
- body = arguments[:body]
76
+ _index = arguments.delete(:index)
140
77
 
141
- params[:fields] = Utils.__listify(params[:fields], :escape => false) if params[:fields]
142
- params[:fielddata_fields] = Utils.__listify(params[:fielddata_fields], :escape => false) if params[:fielddata_fields]
78
+ _type = arguments.delete(:type)
143
79
 
144
- # FIX: Unescape the `filter_path` parameter due to __listify default behavior. Investigate.
145
- params[:filter_path] = defined?(EscapeUtils) ? EscapeUtils.unescape_url(params[:filter_path]) : CGI.unescape(params[:filter_path]) if params[:filter_path]
80
+ method = Elasticsearch::API::HTTP_GET
81
+ path = if _index && _type
82
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_search"
83
+ elsif _index
84
+ "#{Utils.__listify(_index)}/_search"
85
+ else
86
+ "_search"
87
+ end
88
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
146
89
 
90
+ body = arguments[:body]
147
91
  perform_request(method, path, params, body).body
148
92
  end
149
93
 
150
94
  # Register this action with its valid params when the module is loaded.
151
95
  #
152
- # @since 6.1.1
96
+ # @since 6.2.0
153
97
  ParamsRegistry.register(:search, [
154
- :analyzer,
155
- :analyze_wildcard,
156
- :default_operator,
157
- :df,
158
- :explain,
159
- :fielddata_fields,
160
- :include_type_name,
161
- :docvalue_fields,
162
- :stored_fields,
163
- :fields,
164
- :from,
165
- :ignore_indices,
166
- :ignore_unavailable,
167
- :allow_no_indices,
168
- :expand_wildcards,
169
- :lenient,
170
- :lowercase_expanded_terms,
171
- :preference,
172
- :q,
173
- :query_cache,
174
- :request_cache,
175
- :routing,
176
- :scroll,
177
- :search_type,
178
- :size,
179
- :sort,
180
- :source,
181
- :_source,
182
- :_source_includes,
183
- :_source_excludes,
184
- :stored_fields,
185
- :stats,
186
- :suggest_field,
187
- :suggest_mode,
188
- :suggest_size,
189
- :suggest_text,
190
- :terminate_after,
191
- :timeout,
192
- :typed_keys,
193
- :version,
194
- :batched_reduce_size,
195
- :max_concurrent_shard_requests,
196
- :pre_filter_shard_size,
197
- :allow_partial_search_results,
198
- :rest_total_hits_as_int,
199
- :track_total_hits,
200
- :ignore_throttled,
201
- :seq_no_primary_term ].freeze)
98
+ :analyzer,
99
+ :analyze_wildcard,
100
+ :ccs_minimize_roundtrips,
101
+ :default_operator,
102
+ :df,
103
+ :explain,
104
+ :stored_fields,
105
+ :docvalue_fields,
106
+ :from,
107
+ :ignore_unavailable,
108
+ :ignore_throttled,
109
+ :allow_no_indices,
110
+ :expand_wildcards,
111
+ :lenient,
112
+ :preference,
113
+ :q,
114
+ :routing,
115
+ :scroll,
116
+ :search_type,
117
+ :size,
118
+ :sort,
119
+ :_source,
120
+ :_source_excludes,
121
+ :_source_includes,
122
+ :terminate_after,
123
+ :stats,
124
+ :suggest_field,
125
+ :suggest_mode,
126
+ :suggest_size,
127
+ :suggest_text,
128
+ :timeout,
129
+ :track_scores,
130
+ :track_total_hits,
131
+ :allow_partial_search_results,
132
+ :typed_keys,
133
+ :version,
134
+ :seq_no_primary_term,
135
+ :request_cache,
136
+ :batched_reduce_size,
137
+ :max_concurrent_shard_requests,
138
+ :pre_filter_shard_size,
139
+ :rest_total_hits_as_int
140
+ ].freeze)
141
+ end
202
142
  end
203
- end
204
143
  end
@@ -5,45 +5,48 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Returns the names of indices and shards on which a search request would be executed
8
+ # Returns information about the indices and shards that a search request would be executed against.
10
9
  #
11
- # @option arguments [String] :index The name of the index
12
- # @option arguments [String] :type The type of the document
13
- # @option arguments [String] :preference Specify the node or shard the operation should be performed on
14
- # (default: random)
10
+ # @option arguments [List] :index A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
11
+ # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
15
12
  # @option arguments [String] :routing Specific routing value
16
- # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node
17
- # (default: false)
18
- # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
19
- # unavailable (missing or closed)
20
- # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves
21
- # into no concrete indices.
22
- # (This includes `_all` or when no indices have been specified)
23
- # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices
24
- # that are open, closed or both. (options: open, closed)
13
+ # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
14
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
15
+ # @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)
16
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both.
17
+ # (options: open,closed,none,all)
18
+
25
19
  #
26
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/master/search-shards.html
20
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-shards.html
27
21
  #
28
- def search_shards(arguments={})
29
- method = HTTP_GET
30
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_search_shards' )
22
+ def search_shards(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)}/_search_shards"
30
+ else
31
+ "_search_shards"
32
+ end
31
33
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
32
- body = nil
33
34
 
35
+ body = nil
34
36
  perform_request(method, path, params, body).body
35
37
  end
36
38
 
37
39
  # Register this action with its valid params when the module is loaded.
38
40
  #
39
- # @since 6.1.1
41
+ # @since 6.2.0
40
42
  ParamsRegistry.register(:search_shards, [
41
- :preference,
42
- :routing,
43
- :local,
44
- :ignore_unavailable,
45
- :allow_no_indices,
46
- :expand_wildcards ].freeze)
43
+ :preference,
44
+ :routing,
45
+ :local,
46
+ :ignore_unavailable,
47
+ :allow_no_indices,
48
+ :expand_wildcards
49
+ ].freeze)
50
+ end
47
51
  end
48
- end
49
52
  end
@@ -5,68 +5,76 @@
5
5
  module Elasticsearch
6
6
  module API
7
7
  module Actions
8
-
9
- # Configure the search definition witha template in Mustache and parameters
10
- #
11
- # @example Insert the start and end values for the `range` query
12
- #
13
- # client.search_template index: 'myindex',
14
- # body: {
15
- # template: {
16
- # query: {
17
- # range: {
18
- # date: { gte: "{{start}}", lte: "{{end}}" }
19
- # }
20
- # }
21
- # },
22
- # params: { start: "2014-02-01", end: "2014-03-01" }
23
- # }
8
+ # Allows to use the Mustache language to pre-render a search definition.
24
9
  #
25
10
  # @option arguments [List] :index A comma-separated list of index names to search; use `_all` or empty string to perform the operation on all indices
26
11
  # @option arguments [List] :type A comma-separated list of document types to search; leave empty to perform the operation on all types
27
- # @option arguments [Hash] :body The search definition template and its params (*Required*)
28
12
  # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
29
13
  # @option arguments [Boolean] :ignore_throttled Whether specified concrete, expanded or aliased indices should be ignored when throttled
30
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)
31
- # @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
+
32
18
  # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
33
19
  # @option arguments [List] :routing A comma-separated list of specific routing values
34
20
  # @option arguments [Time] :scroll Specify how long a consistent view of the index should be maintained for scrolled search
35
- # @option arguments [String] :search_type Search operation type (options: query_then_fetch, query_and_fetch, dfs_query_then_fetch, dfs_query_and_fetch)
21
+ # @option arguments [String] :search_type Search operation type
22
+ # (options: query_then_fetch,query_and_fetch,dfs_query_then_fetch,dfs_query_and_fetch)
23
+
36
24
  # @option arguments [Boolean] :explain Specify whether to return detailed information about score computation as part of a hit
37
25
  # @option arguments [Boolean] :profile Specify whether to profile the query execution
38
26
  # @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
39
27
  # @option arguments [Boolean] :rest_total_hits_as_int Indicates whether hits.total should be rendered as an integer or an object in the rest search response
40
- # @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
28
+
29
+ # @option arguments [Hash] :body The search definition template and its params (*Required*)
30
+ #
31
+ # *Deprecation notice*:
32
+ # Specifying types in urls has been deprecated
33
+ # Deprecated since version 7.0.0
41
34
  #
42
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-template.html
43
35
  #
44
- def search_template(arguments={})
45
- method = HTTP_GET
46
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_search/template' )
36
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-template.html
37
+ #
38
+ def search_template(arguments = {})
39
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
40
+
41
+ arguments = arguments.clone
42
+
43
+ _index = arguments.delete(:index)
44
+
45
+ _type = arguments.delete(:type)
46
+
47
+ method = Elasticsearch::API::HTTP_GET
48
+ path = if _index && _type
49
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_search/template"
50
+ elsif _index
51
+ "#{Utils.__listify(_index)}/_search/template"
52
+ else
53
+ "_search/template"
54
+ end
47
55
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
48
- body = arguments[:body]
49
56
 
57
+ body = arguments[:body]
50
58
  perform_request(method, path, params, body).body
51
59
  end
52
60
 
53
61
  # Register this action with its valid params when the module is loaded.
54
62
  #
55
- # @since 6.1.1
63
+ # @since 6.2.0
56
64
  ParamsRegistry.register(:search_template, [
57
- :ignore_unavailable,
58
- :ignore_throttled,
59
- :allow_no_indices,
60
- :expand_wildcards,
61
- :preference,
62
- :routing,
63
- :scroll,
64
- :search_type,
65
- :explain,
66
- :profile,
67
- :typed_keys,
68
- :rest_total_hits_as_int,
69
- :ccs_minimize_roundtrips ].freeze)
65
+ :ignore_unavailable,
66
+ :ignore_throttled,
67
+ :allow_no_indices,
68
+ :expand_wildcards,
69
+ :preference,
70
+ :routing,
71
+ :scroll,
72
+ :search_type,
73
+ :explain,
74
+ :profile,
75
+ :typed_keys,
76
+ :rest_total_hits_as_int
77
+ ].freeze)
78
+ end
70
79
  end
71
- end
72
80
  end
@@ -0,0 +1,44 @@
1
+ # Licensed to Elasticsearch B.V under one or more agreements.
2
+ # Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
+ # See the LICENSE file in the project root for more information
4
+
5
+ module Elasticsearch
6
+ module API
7
+ module Snapshot
8
+ module Actions
9
+ # Removes stale data from repository.
10
+ #
11
+ # @option arguments [String] :repository A repository name
12
+ # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
13
+ # @option arguments [Time] :timeout Explicit operation timeout
14
+
15
+ # @option arguments [Hash] :body TODO: Description
16
+ #
17
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/modules-snapshots.html
18
+ #
19
+ def cleanup_repository(arguments = {})
20
+ raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
21
+
22
+ arguments = arguments.clone
23
+
24
+ _repository = arguments.delete(:repository)
25
+
26
+ method = Elasticsearch::API::HTTP_POST
27
+ path = "_snapshot/#{Utils.__listify(_repository)}/_cleanup"
28
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
29
+
30
+ body = arguments[:body]
31
+ perform_request(method, path, params, body).body
32
+ end
33
+
34
+ # Register this action with its valid params when the module is loaded.
35
+ #
36
+ # @since 6.2.0
37
+ ParamsRegistry.register(:cleanup_repository, [
38
+ :master_timeout,
39
+ :timeout
40
+ ].freeze)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -6,50 +6,43 @@ module Elasticsearch
6
6
  module API
7
7
  module Snapshot
8
8
  module Actions
9
-
10
- # Create a new snapshot in the repository
11
- #
12
- # @example Create a snapshot of the whole cluster in the `my-backups` repository
13
- #
14
- # client.snapshot.create repository: 'my-backups', snapshot: 'snapshot-1'
9
+ # Creates a snapshot in a repository.
15
10
  #
16
- # @example Create a snapshot for specific indices in the `my-backups` repository
17
- #
18
- # client.snapshot.create repository: 'my-backups',
19
- # snapshot: 'snapshot-2',
20
- # body: { indices: 'foo,bar', ignore_unavailable: true }
21
- #
22
- # @option arguments [String] :repository A repository name (*Required*)
23
- # @option arguments [String] :snapshot A snapshot name (*Required*)
24
- # @option arguments [Hash] :body The snapshot definition
11
+ # @option arguments [String] :repository A repository name
12
+ # @option arguments [String] :snapshot A snapshot name
25
13
  # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
26
- # @option arguments [Boolean] :wait_for_completion Whether the request should block and wait until
27
- # the operation has completed
14
+ # @option arguments [Boolean] :wait_for_completion Should this request wait until the operation has completed before returning
15
+
16
+ # @option arguments [Hash] :body The snapshot definition
28
17
  #
29
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-snapshots.html#_snapshot
18
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.5/modules-snapshots.html
30
19
  #
31
- def create(arguments={})
20
+ def create(arguments = {})
32
21
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
33
- raise ArgumentError, "Required argument 'snapshot' missing" unless arguments[:snapshot]
34
- repository = arguments.delete(:repository)
35
- snapshot = arguments.delete(:snapshot)
22
+ raise ArgumentError, "Required argument 'snapshot' missing" unless arguments[:snapshot]
23
+
24
+ arguments = arguments.clone
36
25
 
37
- method = HTTP_PUT
38
- path = Utils.__pathify( '_snapshot', Utils.__escape(repository), Utils.__escape(snapshot) )
26
+ _repository = arguments.delete(:repository)
39
27
 
28
+ _snapshot = arguments.delete(:snapshot)
29
+
30
+ method = Elasticsearch::API::HTTP_PUT
31
+ path = "_snapshot/#{Utils.__listify(_repository)}/#{Utils.__listify(_snapshot)}"
40
32
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
41
- body = arguments[:body]
42
33
 
34
+ body = arguments[:body]
43
35
  perform_request(method, path, params, body).body
44
36
  end
45
37
 
46
38
  # Register this action with its valid params when the module is loaded.
47
39
  #
48
- # @since 6.1.1
40
+ # @since 6.2.0
49
41
  ParamsRegistry.register(:create, [
50
- :master_timeout,
51
- :wait_for_completion ].freeze)
42
+ :master_timeout,
43
+ :wait_for_completion
44
+ ].freeze)
45
+ end
52
46
  end
53
- end
54
47
  end
55
48
  end