elasticsearch-api 6.8.0 → 7.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (379) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +26 -5
  3. data/LICENSE +202 -0
  4. data/README.md +24 -21
  5. data/Rakefile +43 -45
  6. data/elasticsearch-api.gemspec +56 -55
  7. data/lib/elasticsearch/api/actions/abort_benchmark.rb +19 -3
  8. data/lib/elasticsearch/api/actions/benchmark.rb +21 -5
  9. data/lib/elasticsearch/api/actions/bulk.rb +54 -69
  10. data/lib/elasticsearch/api/actions/cat/aliases.rb +45 -45
  11. data/lib/elasticsearch/api/actions/cat/allocation.rb +45 -41
  12. data/lib/elasticsearch/api/actions/cat/count.rb +38 -39
  13. data/lib/elasticsearch/api/actions/cat/fielddata.rb +42 -29
  14. data/lib/elasticsearch/api/actions/cat/health.rb +37 -29
  15. data/lib/elasticsearch/api/actions/cat/help.rb +31 -9
  16. data/lib/elasticsearch/api/actions/cat/indices.rb +51 -51
  17. data/lib/elasticsearch/api/actions/cat/master.rb +36 -26
  18. data/lib/elasticsearch/api/actions/cat/nodeattrs.rb +36 -14
  19. data/lib/elasticsearch/api/actions/cat/nodes.rb +43 -39
  20. data/lib/elasticsearch/api/actions/cat/params_registry.rb +20 -4
  21. data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +38 -26
  22. data/lib/elasticsearch/api/actions/cat/plugins.rb +36 -14
  23. data/lib/elasticsearch/api/actions/cat/recovery.rb +47 -47
  24. data/lib/elasticsearch/api/actions/cat/repositories.rb +36 -22
  25. data/lib/elasticsearch/api/actions/cat/segments.rb +42 -19
  26. data/lib/elasticsearch/api/actions/cat/shards.rb +45 -50
  27. data/lib/elasticsearch/api/actions/cat/snapshots.rb +44 -25
  28. data/lib/elasticsearch/api/actions/cat/tasks.rb +40 -16
  29. data/lib/elasticsearch/api/actions/cat/templates.rb +43 -16
  30. data/lib/elasticsearch/api/actions/cat/thread_pool.rb +46 -35
  31. data/lib/elasticsearch/api/actions/clear_scroll.rb +40 -17
  32. data/lib/elasticsearch/api/actions/cluster/allocation_explain.rb +38 -11
  33. data/lib/elasticsearch/api/actions/cluster/delete_component_template.rb +62 -0
  34. data/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb +51 -0
  35. data/lib/elasticsearch/api/actions/cluster/exists_component_template.rb +63 -0
  36. data/lib/elasticsearch/api/actions/cluster/get_component_template.rb +64 -0
  37. data/lib/elasticsearch/api/actions/cluster/get_settings.rb +33 -15
  38. data/lib/elasticsearch/api/actions/cluster/health.rb +46 -27
  39. data/lib/elasticsearch/api/actions/cluster/params_registry.rb +20 -4
  40. data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +32 -14
  41. data/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb +55 -0
  42. data/lib/elasticsearch/api/actions/cluster/put_component_template.rb +66 -0
  43. data/lib/elasticsearch/api/actions/cluster/put_settings.rb +35 -15
  44. data/lib/elasticsearch/api/actions/cluster/remote_info.rb +27 -12
  45. data/lib/elasticsearch/api/actions/cluster/reroute.rb +38 -33
  46. data/lib/elasticsearch/api/actions/cluster/state.rb +53 -44
  47. data/lib/elasticsearch/api/actions/cluster/stats.rb +38 -19
  48. data/lib/elasticsearch/api/actions/count.rb +60 -36
  49. data/lib/elasticsearch/api/actions/create.rb +37 -25
  50. data/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb +60 -0
  51. data/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb +60 -0
  52. data/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb +43 -0
  53. data/lib/elasticsearch/api/actions/dangling_indices/params_registry.rb +60 -0
  54. data/lib/elasticsearch/api/actions/delete.rb +62 -47
  55. data/lib/elasticsearch/api/actions/delete_by_query.rb +82 -57
  56. data/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb +36 -11
  57. data/lib/elasticsearch/api/actions/delete_by_rethrottle.rb +47 -0
  58. data/lib/elasticsearch/api/actions/delete_script.rb +37 -12
  59. data/lib/elasticsearch/api/actions/exists.rb +61 -34
  60. data/lib/elasticsearch/api/actions/exists_source.rb +60 -24
  61. data/lib/elasticsearch/api/actions/explain.rb +68 -44
  62. data/lib/elasticsearch/api/actions/field_caps.rb +49 -19
  63. data/lib/elasticsearch/api/actions/get.rb +60 -40
  64. data/lib/elasticsearch/api/actions/get_script.rb +37 -13
  65. data/lib/elasticsearch/api/actions/get_script_context.rb +45 -0
  66. data/lib/elasticsearch/api/actions/get_script_languages.rb +45 -0
  67. data/lib/elasticsearch/api/actions/get_source.rb +57 -38
  68. data/lib/elasticsearch/api/actions/index.rb +67 -74
  69. data/lib/elasticsearch/api/actions/indices/add_block.rb +68 -0
  70. data/lib/elasticsearch/api/actions/indices/analyze.rb +41 -34
  71. data/lib/elasticsearch/api/actions/indices/clear_cache.rb +44 -41
  72. data/lib/elasticsearch/api/actions/indices/clone.rb +65 -0
  73. data/lib/elasticsearch/api/actions/indices/close.rb +41 -21
  74. data/lib/elasticsearch/api/actions/indices/create.rb +39 -69
  75. data/lib/elasticsearch/api/actions/indices/delete.rb +41 -34
  76. data/lib/elasticsearch/api/actions/indices/delete_alias.rb +41 -19
  77. data/lib/elasticsearch/api/actions/indices/delete_index_template.rb +62 -0
  78. data/lib/elasticsearch/api/actions/indices/delete_template.rb +36 -20
  79. data/lib/elasticsearch/api/actions/indices/exists.rb +43 -21
  80. data/lib/elasticsearch/api/actions/indices/exists_alias.rb +46 -18
  81. data/lib/elasticsearch/api/actions/indices/exists_index_template.rb +65 -0
  82. data/lib/elasticsearch/api/actions/indices/exists_template.rb +37 -14
  83. data/lib/elasticsearch/api/actions/indices/exists_type.rb +42 -17
  84. data/lib/elasticsearch/api/actions/indices/flush.rb +41 -19
  85. data/lib/elasticsearch/api/actions/indices/flush_synced.rb +45 -11
  86. data/lib/elasticsearch/api/actions/indices/forcemerge.rb +42 -40
  87. data/lib/elasticsearch/api/actions/indices/freeze.rb +24 -7
  88. data/lib/elasticsearch/api/actions/indices/get.rb +42 -18
  89. data/lib/elasticsearch/api/actions/indices/get_alias.rb +47 -22
  90. data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +59 -37
  91. data/lib/elasticsearch/api/actions/indices/get_index_template.rb +66 -0
  92. data/lib/elasticsearch/api/actions/indices/get_mapping.rb +57 -32
  93. data/lib/elasticsearch/api/actions/indices/get_settings.rb +50 -36
  94. data/lib/elasticsearch/api/actions/indices/get_template.rb +40 -22
  95. data/lib/elasticsearch/api/actions/indices/get_upgrade.rb +62 -0
  96. data/lib/elasticsearch/api/actions/indices/open.rb +40 -20
  97. data/lib/elasticsearch/api/actions/indices/params_registry.rb +20 -4
  98. data/lib/elasticsearch/api/actions/indices/put_alias.rb +43 -26
  99. data/lib/elasticsearch/api/actions/indices/put_index_template.rb +66 -0
  100. data/lib/elasticsearch/api/actions/indices/put_mapping.rb +58 -40
  101. data/lib/elasticsearch/api/actions/indices/put_settings.rb +46 -36
  102. data/lib/elasticsearch/api/actions/indices/put_template.rb +40 -24
  103. data/lib/elasticsearch/api/actions/indices/recovery.rb +38 -22
  104. data/lib/elasticsearch/api/actions/indices/refresh.rb +39 -25
  105. data/lib/elasticsearch/api/actions/indices/resolve_index.rb +60 -0
  106. data/lib/elasticsearch/api/actions/indices/rollover.rb +47 -18
  107. data/lib/elasticsearch/api/actions/indices/segments.rb +40 -16
  108. data/lib/elasticsearch/api/actions/indices/shard_stores.rb +41 -13
  109. data/lib/elasticsearch/api/actions/indices/shrink.rb +40 -17
  110. data/lib/elasticsearch/api/actions/indices/simulate_index_template.rb +65 -0
  111. data/lib/elasticsearch/api/actions/indices/simulate_template.rb +67 -0
  112. data/lib/elasticsearch/api/actions/indices/split.rb +40 -18
  113. data/lib/elasticsearch/api/actions/indices/stats.rb +68 -104
  114. data/lib/elasticsearch/api/actions/indices/unfreeze.rb +24 -7
  115. data/lib/elasticsearch/api/actions/indices/update_aliases.rb +33 -31
  116. data/lib/elasticsearch/api/actions/indices/upgrade.rb +42 -14
  117. data/lib/elasticsearch/api/actions/indices/validate_query.rb +64 -57
  118. data/lib/elasticsearch/api/actions/info.rb +29 -13
  119. data/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb +36 -11
  120. data/lib/elasticsearch/api/actions/ingest/get_pipeline.rb +37 -9
  121. data/lib/elasticsearch/api/actions/ingest/params_registry.rb +20 -4
  122. data/lib/elasticsearch/api/actions/ingest/processor_grok.rb +27 -13
  123. data/lib/elasticsearch/api/actions/ingest/put_pipeline.rb +37 -13
  124. data/lib/elasticsearch/api/actions/ingest/simulate.rb +39 -10
  125. data/lib/elasticsearch/api/actions/mget.rb +55 -43
  126. data/lib/elasticsearch/api/actions/msearch.rb +67 -50
  127. data/lib/elasticsearch/api/actions/msearch_template.rb +62 -29
  128. data/lib/elasticsearch/api/actions/mtermvectors.rb +59 -32
  129. data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +46 -22
  130. data/lib/elasticsearch/api/actions/nodes/info.rb +43 -40
  131. data/lib/elasticsearch/api/actions/nodes/params_registry.rb +20 -4
  132. data/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb +37 -21
  133. data/lib/elasticsearch/api/actions/nodes/shutdown.rb +22 -5
  134. data/lib/elasticsearch/api/actions/nodes/stats.rb +53 -33
  135. data/lib/elasticsearch/api/actions/nodes/usage.rb +46 -12
  136. data/lib/elasticsearch/api/actions/params_registry.rb +20 -4
  137. data/lib/elasticsearch/api/actions/ping.rb +30 -18
  138. data/lib/elasticsearch/api/actions/put_script.rb +44 -31
  139. data/lib/elasticsearch/api/actions/rank_eval.rb +49 -16
  140. data/lib/elasticsearch/api/actions/reindex.rb +45 -48
  141. data/lib/elasticsearch/api/actions/reindex_rethrottle.rb +36 -11
  142. data/lib/elasticsearch/api/actions/remote/info.rb +18 -2
  143. data/lib/elasticsearch/api/actions/render_search_template.rb +41 -15
  144. data/lib/elasticsearch/api/actions/scripts_painless_execute.rb +38 -14
  145. data/lib/elasticsearch/api/actions/scroll.rb +51 -51
  146. data/lib/elasticsearch/api/actions/search.rb +96 -121
  147. data/lib/elasticsearch/api/actions/search_shards.rb +43 -15
  148. data/lib/elasticsearch/api/actions/search_template.rb +64 -37
  149. data/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb +58 -0
  150. data/lib/elasticsearch/api/actions/snapshot/clone.rb +66 -0
  151. data/lib/elasticsearch/api/actions/snapshot/create.rb +39 -26
  152. data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +37 -23
  153. data/lib/elasticsearch/api/actions/snapshot/delete.rb +38 -21
  154. data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +35 -17
  155. data/lib/elasticsearch/api/actions/snapshot/get.rb +40 -29
  156. data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +38 -20
  157. data/lib/elasticsearch/api/actions/snapshot/params_registry.rb +20 -4
  158. data/lib/elasticsearch/api/actions/snapshot/restore.rb +39 -31
  159. data/lib/elasticsearch/api/actions/snapshot/status.rb +41 -21
  160. data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +36 -12
  161. data/lib/elasticsearch/api/actions/tasks/cancel.rb +39 -12
  162. data/lib/elasticsearch/api/actions/tasks/get.rb +34 -12
  163. data/lib/elasticsearch/api/actions/tasks/list.rb +35 -16
  164. data/lib/elasticsearch/api/actions/tasks/params_registry.rb +20 -4
  165. data/lib/elasticsearch/api/actions/termvectors.rb +71 -65
  166. data/lib/elasticsearch/api/actions/update.rb +68 -72
  167. data/lib/elasticsearch/api/actions/update_by_query.rb +84 -62
  168. data/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb +36 -11
  169. data/lib/elasticsearch/api/namespace/cat.rb +17 -1
  170. data/lib/elasticsearch/api/namespace/cluster.rb +17 -0
  171. data/lib/elasticsearch/api/namespace/common.rb +17 -0
  172. data/lib/elasticsearch/api/namespace/dangling_indices.rb +35 -0
  173. data/lib/elasticsearch/api/namespace/indices.rb +17 -0
  174. data/lib/elasticsearch/api/namespace/ingest.rb +17 -0
  175. data/lib/elasticsearch/api/namespace/nodes.rb +17 -0
  176. data/lib/elasticsearch/api/namespace/remote.rb +17 -0
  177. data/lib/elasticsearch/api/namespace/snapshot.rb +17 -0
  178. data/lib/elasticsearch/api/namespace/tasks.rb +17 -0
  179. data/lib/elasticsearch/api/utils.rb +17 -0
  180. data/lib/elasticsearch/api/version.rb +18 -1
  181. data/lib/elasticsearch/api.rb +22 -2
  182. data/lib/elasticsearch-api.rb +17 -0
  183. data/spec/elasticsearch/api/actions/abort_benchmark_spec.rb +17 -0
  184. data/spec/elasticsearch/api/actions/benchmark_spec.rb +17 -0
  185. data/spec/elasticsearch/api/actions/bulk_spec.rb +17 -0
  186. data/spec/elasticsearch/api/actions/cat/aliases_spec.rb +18 -1
  187. data/spec/elasticsearch/api/actions/cat/allocation_spec.rb +18 -1
  188. data/spec/elasticsearch/api/actions/cat/count_spec.rb +18 -1
  189. data/spec/elasticsearch/api/actions/cat/fielddata_spec.rb +19 -2
  190. data/spec/elasticsearch/api/actions/cat/health_spec.rb +18 -1
  191. data/spec/elasticsearch/api/actions/cat/help_spec.rb +18 -1
  192. data/spec/elasticsearch/api/actions/cat/indices_spec.rb +18 -1
  193. data/spec/elasticsearch/api/actions/cat/master_spec.rb +18 -1
  194. data/spec/elasticsearch/api/actions/cat/nodeattrs_spec.rb +18 -1
  195. data/spec/elasticsearch/api/actions/cat/nodes_spec.rb +18 -1
  196. data/spec/elasticsearch/api/actions/cat/pending_tasks_spec.rb +18 -1
  197. data/spec/elasticsearch/api/actions/cat/plugins_spec.rb +18 -1
  198. data/spec/elasticsearch/api/actions/cat/recovery_spec.rb +18 -1
  199. data/spec/elasticsearch/api/actions/cat/repositories_spec.rb +18 -1
  200. data/spec/elasticsearch/api/actions/cat/segments_spec.rb +36 -5
  201. data/spec/elasticsearch/api/actions/cat/shards_spec.rb +18 -1
  202. data/spec/elasticsearch/api/actions/cat/snapshot_spec.rb +18 -1
  203. data/spec/elasticsearch/api/actions/cat/tasks_spec.rb +18 -1
  204. data/spec/elasticsearch/api/actions/cat/templates_spec.rb +18 -1
  205. data/spec/elasticsearch/api/actions/cat/thread_pool_spec.rb +18 -1
  206. data/spec/elasticsearch/api/actions/clear_scroll_spec.rb +21 -2
  207. data/spec/elasticsearch/api/actions/cluster/allocation_explain_spec.rb +18 -1
  208. data/spec/elasticsearch/api/actions/cluster/get_settings_spec.rb +18 -1
  209. data/spec/elasticsearch/api/actions/cluster/health_spec.rb +20 -3
  210. data/spec/elasticsearch/api/actions/cluster/pending_tasks_spec.rb +18 -1
  211. data/spec/elasticsearch/api/actions/cluster/put_settings_spec.rb +19 -2
  212. data/spec/elasticsearch/api/actions/cluster/remote_info_spec.rb +18 -1
  213. data/spec/elasticsearch/api/actions/cluster/reroute_spec.rb +19 -2
  214. data/spec/elasticsearch/api/actions/cluster/state_spec.rb +19 -2
  215. data/spec/elasticsearch/api/actions/cluster/stats_spec.rb +18 -18
  216. data/spec/elasticsearch/api/actions/count_spec.rb +30 -10
  217. data/spec/elasticsearch/api/actions/create_document_spec.rb +25 -4
  218. data/spec/elasticsearch/api/actions/dangling_indices/delete_dangling_indices_spec.rb +48 -0
  219. data/spec/elasticsearch/api/actions/dangling_indices/import_dangling_indices_spec.rb +48 -0
  220. data/spec/elasticsearch/api/actions/dangling_indices/list_dangling_indices_spec.rb +36 -0
  221. data/spec/elasticsearch/api/actions/delete_by_query_spec.rb +33 -8
  222. data/spec/elasticsearch/api/actions/delete_document_spec.rb +21 -8
  223. data/spec/elasticsearch/api/actions/delete_script_spec.rb +19 -15
  224. data/spec/elasticsearch/api/actions/exists_document_spec.rb +20 -2
  225. data/spec/elasticsearch/api/actions/explain_document_spec.rb +26 -15
  226. data/spec/elasticsearch/api/actions/field_caps_spec.rb +19 -1
  227. data/spec/elasticsearch/api/actions/get_document_source_spec.rb +24 -4
  228. data/spec/elasticsearch/api/actions/get_document_spec.rb +20 -2
  229. data/spec/elasticsearch/api/actions/get_script_spec.rb +25 -14
  230. data/spec/elasticsearch/api/actions/hashie_spec.rb +17 -0
  231. data/spec/elasticsearch/api/actions/index_document_spec.rb +25 -22
  232. data/spec/elasticsearch/api/actions/indices/add_block_spec.rb +63 -0
  233. data/spec/elasticsearch/api/actions/indices/analyze_spec.rb +24 -12
  234. data/spec/elasticsearch/api/actions/indices/clear_cache_spec.rb +8 -8
  235. data/spec/elasticsearch/api/actions/indices/clone_spec.rb +122 -0
  236. data/spec/elasticsearch/api/actions/indices/close_spec.rb +18 -1
  237. data/spec/elasticsearch/api/actions/indices/create_spec.rb +18 -1
  238. data/spec/elasticsearch/api/actions/indices/delete_alias_spec.rb +20 -3
  239. data/spec/elasticsearch/api/actions/indices/delete_spec.rb +18 -1
  240. data/spec/elasticsearch/api/actions/indices/delete_template_spec.rb +18 -1
  241. data/spec/elasticsearch/api/actions/indices/exists_alias_spec.rb +18 -1
  242. data/spec/elasticsearch/api/actions/indices/exists_spec.rb +18 -1
  243. data/spec/elasticsearch/api/actions/indices/exists_template_spec.rb +18 -1
  244. data/spec/elasticsearch/api/actions/indices/exists_type_spec.rb +18 -1
  245. data/spec/elasticsearch/api/actions/indices/flush_spec.rb +18 -1
  246. data/spec/elasticsearch/api/actions/indices/flush_synced_spec.rb +18 -1
  247. data/spec/elasticsearch/api/actions/indices/forcemerge_spec.rb +18 -1
  248. data/spec/elasticsearch/api/actions/indices/freeze_spec.rb +85 -0
  249. data/spec/elasticsearch/api/actions/indices/get_alias_spec.rb +18 -1
  250. data/spec/elasticsearch/api/actions/indices/get_field_mapping_spec.rb +18 -1
  251. data/spec/elasticsearch/api/actions/indices/get_mapping_spec.rb +18 -1
  252. data/spec/elasticsearch/api/actions/indices/get_settings_spec.rb +18 -1
  253. data/spec/elasticsearch/api/actions/indices/get_spec.rb +18 -12
  254. data/spec/elasticsearch/api/actions/indices/open_spec.rb +18 -1
  255. data/spec/elasticsearch/api/actions/indices/put_alias_spec.rb +21 -4
  256. data/spec/elasticsearch/api/actions/indices/put_mapping_spec.rb +21 -4
  257. data/spec/elasticsearch/api/actions/indices/put_settings_spec.rb +33 -1
  258. data/spec/elasticsearch/api/actions/indices/put_template_spec.rb +18 -1
  259. data/spec/elasticsearch/api/actions/indices/recovery_spec.rb +18 -1
  260. data/spec/elasticsearch/api/actions/indices/refresh_spec.rb +18 -1
  261. data/spec/elasticsearch/api/actions/indices/rollover_spec.rb +18 -1
  262. data/spec/elasticsearch/api/actions/indices/segments_spec.rb +18 -1
  263. data/spec/elasticsearch/api/actions/indices/shard_stores_spec.rb +18 -1
  264. data/spec/elasticsearch/api/actions/indices/shrink_spec.rb +18 -1
  265. data/spec/elasticsearch/api/actions/indices/split_spec.rb +18 -1
  266. data/spec/elasticsearch/api/actions/indices/stats_spec.rb +124 -0
  267. data/spec/elasticsearch/api/actions/indices/unfreeze_spec.rb +85 -0
  268. data/spec/elasticsearch/api/actions/indices/update_aliases_spec.rb +18 -1
  269. data/spec/elasticsearch/api/actions/indices/upgrade_spec.rb +18 -1
  270. data/spec/elasticsearch/api/actions/indices/validate_query_spec.rb +24 -13
  271. data/spec/elasticsearch/api/actions/info_spec.rb +19 -1
  272. data/spec/elasticsearch/api/actions/ingest/delete_pipeline_spec.rb +18 -1
  273. data/spec/elasticsearch/api/actions/ingest/get_pipeline_spec.rb +18 -1
  274. data/spec/elasticsearch/api/actions/ingest/put_pipeline_spec.rb +18 -1
  275. data/spec/elasticsearch/api/actions/ingest/simulate_spec.rb +23 -7
  276. data/spec/elasticsearch/api/actions/json_builders_spec.rb +27 -11
  277. data/spec/elasticsearch/api/actions/mget_spec.rb +22 -5
  278. data/spec/elasticsearch/api/actions/msearch_spec.rb +38 -39
  279. data/spec/elasticsearch/api/actions/msearch_template_spec.rb +22 -6
  280. data/spec/elasticsearch/api/actions/mtermvectors_spec.rb +24 -6
  281. data/spec/elasticsearch/api/actions/nodes/hot_threads_spec.rb +21 -4
  282. data/spec/elasticsearch/api/actions/nodes/info_spec.rb +18 -1
  283. data/spec/elasticsearch/api/actions/nodes/reload_secure_settings_spec.rb +24 -10
  284. data/spec/elasticsearch/api/actions/nodes/shutdown_spec.rb +17 -0
  285. data/spec/elasticsearch/api/actions/nodes/stats_spec.rb +18 -1
  286. data/spec/elasticsearch/api/actions/ping_spec.rb +20 -2
  287. data/spec/elasticsearch/api/actions/put_script_spec.rb +39 -15
  288. data/spec/elasticsearch/api/actions/reindex_spec.rb +20 -2
  289. data/spec/elasticsearch/api/actions/remote/info_spec.rb +17 -0
  290. data/spec/elasticsearch/api/actions/render_search_template_spec.rb +44 -9
  291. data/spec/elasticsearch/api/actions/scroll_spec.rb +52 -0
  292. data/spec/elasticsearch/api/actions/search_shards_spec.rb +20 -2
  293. data/spec/elasticsearch/api/actions/search_spec.rb +24 -6
  294. data/spec/elasticsearch/api/actions/search_template_spec.rb +22 -5
  295. data/spec/elasticsearch/api/actions/snapshot/clone_spec.rb +67 -0
  296. data/spec/elasticsearch/api/actions/snapshot/create_repository_spec.rb +18 -1
  297. data/spec/elasticsearch/api/actions/snapshot/create_spec.rb +18 -1
  298. data/spec/elasticsearch/api/actions/snapshot/delete_repository_spec.rb +18 -1
  299. data/spec/elasticsearch/api/actions/snapshot/delete_spec.rb +18 -1
  300. data/spec/elasticsearch/api/actions/snapshot/get_repository_spec.rb +18 -1
  301. data/spec/elasticsearch/api/actions/snapshot/get_spec.rb +18 -1
  302. data/spec/elasticsearch/api/actions/snapshot/restore_spec.rb +18 -1
  303. data/spec/elasticsearch/api/actions/snapshot/status_spec.rb +18 -1
  304. data/spec/elasticsearch/api/actions/snapshot/verify_repository_spec.rb +18 -1
  305. data/spec/elasticsearch/api/actions/tasks/cancel_spec.rb +18 -1
  306. data/spec/elasticsearch/api/actions/tasks/get_spec.rb +18 -1
  307. data/spec/elasticsearch/api/actions/tasks/list_spec.rb +18 -12
  308. data/spec/elasticsearch/api/actions/termvectors_spec.rb +22 -12
  309. data/spec/elasticsearch/api/actions/update_by_query_spec.rb +20 -2
  310. data/spec/elasticsearch/api/actions/update_document_spec.rb +22 -14
  311. data/spec/elasticsearch/api/api_spec.rb +17 -0
  312. data/spec/elasticsearch/api/client_spec.rb +17 -0
  313. data/spec/elasticsearch/api/rest_api_yaml_spec.rb +138 -0
  314. data/spec/elasticsearch/api/utils_spec.rb +18 -1
  315. data/spec/rest_yaml_tests_helper.rb +107 -0
  316. data/spec/spec_helper.rb +33 -34
  317. data/utils/Gemfile +18 -0
  318. data/utils/README.md +41 -0
  319. data/utils/Thorfile +4 -1
  320. data/utils/thor/.rubocop.yml +2 -0
  321. data/utils/thor/generate_source.rb +248 -81
  322. data/utils/thor/generator/endpoint_specifics.rb +181 -0
  323. data/utils/thor/generator/files_helper.rb +60 -0
  324. data/utils/thor/lister.rb +20 -4
  325. data/utils/thor/templates/_documentation_top.erb +39 -0
  326. data/utils/thor/templates/_method_setup.erb +35 -0
  327. data/utils/thor/templates/_params_registry.erb +12 -0
  328. data/utils/thor/templates/_perform_request.erb +38 -0
  329. data/utils/thor/templates/method.erb +73 -0
  330. data/utils/thor/templates/{ruby/test.erb → test.erb} +4 -0
  331. data/utils/thor/templates/{ruby/test_helper.rb → test_helper.rb} +17 -1
  332. metadata +123 -124
  333. data/LICENSE.txt +0 -13
  334. data/lib/elasticsearch/api/actions/count_percolate.rb +0 -82
  335. data/lib/elasticsearch/api/actions/delete_template.rb +0 -21
  336. data/lib/elasticsearch/api/actions/field_stats.rb +0 -36
  337. data/lib/elasticsearch/api/actions/get_template.rb +0 -27
  338. data/lib/elasticsearch/api/actions/indices/delete_mapping.rb +0 -26
  339. data/lib/elasticsearch/api/actions/indices/delete_warmer.rb +0 -32
  340. data/lib/elasticsearch/api/actions/indices/get_aliases.rb +0 -37
  341. data/lib/elasticsearch/api/actions/indices/get_warmer.rb +0 -62
  342. data/lib/elasticsearch/api/actions/indices/optimize.rb +0 -77
  343. data/lib/elasticsearch/api/actions/indices/put_warmer.rb +0 -65
  344. data/lib/elasticsearch/api/actions/indices/seal.rb +0 -24
  345. data/lib/elasticsearch/api/actions/indices/snapshot_index.rb +0 -44
  346. data/lib/elasticsearch/api/actions/indices/status.rb +0 -63
  347. data/lib/elasticsearch/api/actions/list_benchmarks.rb +0 -27
  348. data/lib/elasticsearch/api/actions/mlt.rb +0 -130
  349. data/lib/elasticsearch/api/actions/mpercolate.rb +0 -62
  350. data/lib/elasticsearch/api/actions/percolate.rb +0 -73
  351. data/lib/elasticsearch/api/actions/put_template.rb +0 -25
  352. data/lib/elasticsearch/api/actions/search_exists.rb +0 -63
  353. data/lib/elasticsearch/api/actions/suggest.rb +0 -49
  354. data/spec/elasticsearch/api/actions/count_percolate_spec.rb +0 -17
  355. data/spec/elasticsearch/api/actions/delete_template_spec.rb +0 -17
  356. data/spec/elasticsearch/api/actions/field_stats_spec.rb +0 -17
  357. data/spec/elasticsearch/api/actions/get_template_spec.rb +0 -52
  358. data/spec/elasticsearch/api/actions/indices/delete_mapping_spec.rb +0 -77
  359. data/spec/elasticsearch/api/actions/indices/delete_warmer_spec.rb +0 -86
  360. data/spec/elasticsearch/api/actions/indices/get_aliases_spec.rb +0 -55
  361. data/spec/elasticsearch/api/actions/indices/get_template_spec.rb +0 -59
  362. data/spec/elasticsearch/api/actions/indices/get_warmer_spec.rb +0 -48
  363. data/spec/elasticsearch/api/actions/indices/optimize_spec.rb +0 -63
  364. data/spec/elasticsearch/api/actions/indices/put_warmer_spec.rb +0 -101
  365. data/spec/elasticsearch/api/actions/indices/seal_spec.rb +0 -18
  366. data/spec/elasticsearch/api/actions/indices/snapshot_index_spec.rb +0 -89
  367. data/spec/elasticsearch/api/actions/indices/status_spec.rb +0 -92
  368. data/spec/elasticsearch/api/actions/list_benchmarks_spec.rb +0 -17
  369. data/spec/elasticsearch/api/actions/mlt_spec.rb +0 -130
  370. data/spec/elasticsearch/api/actions/mpercolate_spec.rb +0 -49
  371. data/spec/elasticsearch/api/actions/percolate_spec.rb +0 -67
  372. data/spec/elasticsearch/api/actions/put_template_spec.rb +0 -17
  373. data/spec/elasticsearch/api/actions/scoll_spec.rb +0 -17
  374. data/spec/elasticsearch/api/actions/search_exists_spec.rb +0 -63
  375. data/spec/elasticsearch/api/actions/suggest_spec.rb +0 -77
  376. data/test/integration/yaml_test_runner.rb +0 -546
  377. data/test/test_helper.rb +0 -42
  378. data/utils/thor/generate_api.rb +0 -189
  379. data/utils/thor/templates/ruby/method.erb +0 -60
@@ -1,28 +1,54 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # Pre-render search requests before they are executed and fill existing templates with template parameters
21
+ # Allows to use the Mustache language to pre-render a search definition.
6
22
  #
7
23
  # @option arguments [String] :id The id of the stored search template
24
+ # @option arguments [Hash] :headers Custom HTTP headers
8
25
  # @option arguments [Hash] :body The search definition template and its params
9
26
  #
10
- # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-template.html
27
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-template.html#_validating_templates
11
28
  #
12
- def render_search_template(arguments={})
13
- method = 'GET'
14
- path = "_render/template"
15
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
16
- body = arguments[:body]
29
+ def render_search_template(arguments = {})
30
+ headers = arguments.delete(:headers) || {}
17
31
 
18
- perform_request(method, path, params, body).body
19
- end
32
+ arguments = arguments.clone
20
33
 
21
- # Register this action with its valid params when the module is loaded.
22
- #
23
- # @since 6.2.0
24
- ParamsRegistry.register(:render_search_template, [
25
- :id ].freeze)
34
+ _id = arguments.delete(:id)
35
+
36
+ method = if arguments[:body]
37
+ Elasticsearch::API::HTTP_POST
38
+ else
39
+ Elasticsearch::API::HTTP_GET
40
+ end
41
+
42
+ path = if _id
43
+ "_render/template/#{Utils.__listify(_id)}"
44
+ else
45
+ "_render/template"
46
+ end
47
+ params = {}
48
+
49
+ body = arguments[:body]
50
+ perform_request(method, path, params, body, headers).body
51
+ end
26
52
  end
27
53
  end
28
54
  end
@@ -1,27 +1,51 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # The Painless execute API allows an arbitrary script to be executed and a result to be returned.
21
+ # Allows an arbitrary script to be executed and a result to be returned
22
+ # This functionality is Experimental and may be changed or removed
23
+ # completely in a future release. Elastic will take a best effort approach
24
+ # to fix any issues, but experimental features are not subject to the
25
+ # support SLA of official GA features.
6
26
  #
27
+ # @option arguments [Hash] :headers Custom HTTP headers
7
28
  # @option arguments [Hash] :body The script to execute
8
29
  #
9
- # @see https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-execute-api.html
30
+ # @see https://www.elastic.co/guide/en/elasticsearch/painless/7.10/painless-execute-api.html
10
31
  #
11
- def scripts_painless_execute(arguments={})
12
- method = Elasticsearch::API::HTTP_GET
13
- path = "_scripts/painless/_execute"
32
+ def scripts_painless_execute(arguments = {})
33
+ headers = arguments.delete(:headers) || {}
34
+
35
+ arguments = arguments.clone
36
+
37
+ method = if arguments[:body]
38
+ Elasticsearch::API::HTTP_POST
39
+ else
40
+ Elasticsearch::API::HTTP_GET
41
+ end
42
+
43
+ path = "_scripts/painless/_execute"
14
44
  params = {}
15
- body = arguments[:body]
16
45
 
17
- perform_request(method, path, params, body).body
46
+ body = arguments[:body]
47
+ perform_request(method, path, params, body, headers).body
18
48
  end
19
-
20
- # Register this action with its valid params when the module is loaded.
21
- #
22
- # @since 6.2.0
23
- ParamsRegistry.register(:scripts_painless_execute, [
24
- ].freeze)
25
49
  end
26
50
  end
27
51
  end
@@ -1,70 +1,70 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # Efficiently iterate over a large result set.
6
- #
7
- # When using `from` and `size` to return a large result sets, performance drops as you "paginate" in the set,
8
- # and you can't guarantee the consistency when the index is being updated at the same time.
9
- #
10
- # The "Scroll" API uses a "point in time" snapshot of the index state, which was created via a "Search" API
11
- # request specifying the `scroll` parameter.
12
- #
13
- # @example A basic example
14
- #
15
- # result = client.search index: 'scrollindex',
16
- # scroll: '5m',
17
- # body: { query: { match: { title: 'test' } }, sort: '_id' }
18
- #
19
- # result = client.scroll scroll: '5m', body: { scroll_id: result['_scroll_id'] }
20
- #
21
- # @example Call the `scroll` API until all the documents are returned
22
- #
23
- # # Index 1,000 documents
24
- # client.indices.delete index: 'test'
25
- # 1_000.times do |i| client.index index: 'test', type: 'test', id: i+1, body: {title: "Test #{i+1}"} end
26
- # client.indices.refresh index: 'test'
21
+ # Allows to retrieve a large numbers of results from a single search request.
27
22
  #
28
- # # Open the "view" of the index by passing the `scroll` parameter
29
- # # Sorting by `_doc` makes the operations faster
30
- # r = client.search index: 'test', scroll: '1m', body: {sort: ['_doc']}
31
- #
32
- # # Display the initial results
33
- # puts "--- BATCH 0 -------------------------------------------------"
34
- # puts r['hits']['hits'].map { |d| d['_source']['title'] }.inspect
23
+ # @option arguments [String] :scroll_id The scroll ID *Deprecated*
24
+ # @option arguments [Time] :scroll Specify how long a consistent view of the index should be maintained for scrolled search
25
+ # @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
26
+ # @option arguments [Hash] :headers Custom HTTP headers
27
+ # @option arguments [Hash] :body The scroll ID if not passed by URL or query parameter.
35
28
  #
36
- # # Call the `scroll` API until empty results are returned
37
- # while r = client.scroll(body: { scroll_id: r['_scroll_id'] }, scroll: '5m') and not r['hits']['hits'].empty? do
38
- # puts "--- BATCH #{defined?($i) ? $i += 1 : $i = 1} -------------------------------------------------"
39
- # puts r['hits']['hits'].map { |d| d['_source']['title'] }.inspect
40
- # puts
41
- # end
29
+ # *Deprecation notice*:
30
+ # A scroll id can be quite large and should be specified as part of the body
31
+ # Deprecated since version 7.0.0
42
32
  #
43
- # @option arguments [String] :scroll_id The scroll ID
44
- # @option arguments [Hash] :body The scroll ID if not passed by URL or query parameter.
45
- # @option arguments [Time] :scroll Specify how long a consistent view of the index should be maintained for scrolled search
46
- # @option arguments [String] :scroll_id The scroll ID for scrolled search
47
- # @option arguments [Boolean] :rest_total_hits_as_int This parameter is ignored in this version. It is used in the next major version to control whether the rest response should render the total.hits as an object or a number
48
33
  #
49
- # @see http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scan-scroll.html#scan-scroll
50
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html
34
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-request-body.html#request-body-search-scroll
51
35
  #
52
- def scroll(arguments={})
53
- method = HTTP_GET
54
- path = "_search/scroll"
36
+ def scroll(arguments = {})
37
+ headers = arguments.delete(:headers) || {}
38
+
39
+ arguments = arguments.clone
40
+
41
+ _scroll_id = arguments.delete(:scroll_id)
42
+
43
+ method = if arguments[:body]
44
+ Elasticsearch::API::HTTP_POST
45
+ else
46
+ Elasticsearch::API::HTTP_GET
47
+ end
48
+
49
+ path = if _scroll_id
50
+ "_search/scroll/#{Utils.__listify(_scroll_id)}"
51
+ else
52
+ "_search/scroll"
53
+ end
55
54
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
56
- body = arguments[:body]
57
55
 
58
- perform_request(method, path, params, body).body
56
+ body = arguments[:body]
57
+ perform_request(method, path, params, body, headers).body
59
58
  end
60
59
 
61
60
  # Register this action with its valid params when the module is loaded.
62
61
  #
63
62
  # @since 6.2.0
64
63
  ParamsRegistry.register(:scroll, [
65
- :scroll,
66
- :scroll_id,
67
- :rest_total_hits_as_int ].freeze)
64
+ :scroll,
65
+ :scroll_id,
66
+ :rest_total_hits_as_int
67
+ ].freeze)
68
68
  end
69
69
  end
70
70
  end
@@ -1,73 +1,30 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # Return documents matching a query, as well as aggregations (facets), highlighted snippets, suggestions, etc.
6
- #
7
- # The search API is used to query one or more indices either using simple
8
- # [query string queries](http://www.elasticsearch.org/guide/reference/api/search/uri-request/)
9
- # as the `:q` argument , or by passing the
10
- # [full request definition](http://www.elasticsearch.org/guide/reference/api/search/request-body/)
11
- # in the [Query DSL](http://www.elasticsearch.org/guide/reference/query-dsl/) as the `:body` argument.
12
- #
13
- # @example Search with a simple query string query
14
- #
15
- # client.search index: 'myindex', q: 'title:test'
16
- #
17
- # @example Passing a full request definition in the Elasticsearch's Query DSL as a `Hash`
18
- #
19
- # client.search index: 'myindex',
20
- # body: {
21
- # query: { match: { title: 'test' } },
22
- # aggregations: { tags: { terms: { field: 'tags' } } }
23
- # }
24
- #
25
- # @example Paginating results: return 10 documents, beginning from the 10th
26
- #
27
- # client.search index: 'myindex',
28
- # body: {
29
- # query: { match: { title: 'test' } },
30
- # from: 10,
31
- # size: 10
32
- # }
33
- #
34
- # @example Passing the search definition as a `String`, built with a JSON builder
35
- #
36
- # require 'jbuilder'
37
- #
38
- # json = Jbuilder.encode do |json|
39
- # json.query do
40
- # json.match do
41
- # json.title do
42
- # json.query 'test 1'
43
- # json.operator 'and'
44
- # end
45
- # end
46
- # end
47
- # end
48
- #
49
- # client.search index: 'myindex', body: json
50
- #
51
- # @example Wrapping the result in [`Hashie::Mash`](https://github.com/intridea/hashie) for easier access
52
- #
53
- # response = client.search index: 'myindex',
54
- # body: {
55
- # query: { match: { title: 'test' } },
56
- # aggregations: { tags: { terms: { field: 'tags' } } }
57
- # }
58
- #
59
- # response = Hashie::Mash.new response
60
- #
61
- # response.hits.hits.first._source.title
62
- #
63
- # response.aggregations.tags.terms.to_a.map { |f| "#{f.term} [#{f.count}]" }.join(', ')
64
- #
21
+ # Returns results matching a query.
65
22
  #
66
23
  # @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
67
24
  # @option arguments [List] :type A comma-separated list of document types to search; leave empty to perform the operation on all types
68
- # @option arguments [Hash] :body The search definition using the Query DSL
69
25
  # @option arguments [String] :analyzer The analyzer to use for the query string
70
26
  # @option arguments [Boolean] :analyze_wildcard Specify whether wildcard and prefix queries should be analyzed (default: false)
27
+ # @option arguments [Boolean] :ccs_minimize_roundtrips Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution
71
28
  # @option arguments [String] :default_operator The default operator for query string query (AND or OR) (options: AND, OR)
72
29
  # @option arguments [String] :df The field to use as default where no field prefix is given in the query string
73
30
  # @option arguments [Boolean] :explain Specify whether to return detailed information about score computation as part of a hit
@@ -77,7 +34,7 @@ module Elasticsearch
77
34
  # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
78
35
  # @option arguments [Boolean] :ignore_throttled Whether specified concrete, expanded or aliased indices should be ignored when throttled
79
36
  # @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)
80
- # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, none, all)
37
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, hidden, none, all)
81
38
  # @option arguments [Boolean] :lenient Specify whether format-based query failures (such as providing text to a numeric field) should be ignored
82
39
  # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
83
40
  # @option arguments [String] :q Query in the Lucene query string syntax
@@ -101,80 +58,98 @@ module Elasticsearch
101
58
  # @option arguments [Boolean] :allow_partial_search_results Indicate if an error should be returned if there is a partial search failure or timeout
102
59
  # @option arguments [Boolean] :typed_keys Specify whether aggregation and suggester names should be prefixed by their respective types in the response
103
60
  # @option arguments [Boolean] :version Specify whether to return document version as part of a hit
61
+ # @option arguments [Boolean] :seq_no_primary_term Specify whether to return sequence number and primary term of the last modification of each hit
104
62
  # @option arguments [Boolean] :request_cache Specify if request cache should be used for this request or not, defaults to index level setting
105
63
  # @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.
106
- # @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
107
- # @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.
108
- # @option arguments [Boolean] :rest_total_hits_as_int This parameter is ignored in this version. It is used in the next major version to control whether the rest response should render the total.hits as an object or a number
64
+ # @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
65
+ # @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 its rewrite method ie. if date filters are mandatory to match but the shard bounds and the query are disjoint.
66
+ # @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
67
+ # @option arguments [Hash] :headers Custom HTTP headers
68
+ # @option arguments [Hash] :body The search definition using the Query DSL
69
+ #
70
+ # *Deprecation notice*:
71
+ # Specifying types in urls has been deprecated
72
+ # Deprecated since version 7.0.0
109
73
  #
110
- # @return [Hash]
111
74
  #
112
- # @see http://www.elasticsearch.org/guide/reference/api/search/
113
- # @see http://www.elasticsearch.org/guide/reference/api/search/request-body/
75
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-search.html
114
76
  #
115
- def search(arguments={})
116
- arguments[:index] = UNDERSCORE_ALL if ! arguments[:index] && arguments[:type]
117
- method = HTTP_GET
118
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), UNDERSCORE_SEARCH )
77
+ def search(arguments = {})
78
+ headers = arguments.delete(:headers) || {}
119
79
 
120
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
80
+ arguments = arguments.clone
81
+ arguments[:index] = UNDERSCORE_ALL if !arguments[:index] && arguments[:type]
82
+
83
+ _index = arguments.delete(:index)
121
84
 
122
- body = arguments[:body]
85
+ _type = arguments.delete(:type)
123
86
 
124
- params[:fields] = Utils.__listify(params[:fields], :escape => false) if params[:fields]
125
- params[:fielddata_fields] = Utils.__listify(params[:fielddata_fields], :escape => false) if params[:fielddata_fields]
87
+ method = if arguments[:body]
88
+ Elasticsearch::API::HTTP_POST
89
+ else
90
+ Elasticsearch::API::HTTP_GET
91
+ end
126
92
 
127
- # FIX: Unescape the `filter_path` parameter due to __listify default behavior. Investigate.
128
- params[:filter_path] = defined?(EscapeUtils) ? EscapeUtils.unescape_url(params[:filter_path]) : CGI.unescape(params[:filter_path]) if params[:filter_path]
93
+ path = if _index && _type
94
+ "#{Utils.__listify(_index)}/#{Utils.__listify(_type)}/_search"
95
+ elsif _index
96
+ "#{Utils.__listify(_index)}/_search"
97
+ else
98
+ "_search"
99
+ end
100
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
129
101
 
130
- perform_request(method, path, params, body).body
102
+ body = arguments[:body]
103
+ perform_request(method, path, params, body, headers).body
131
104
  end
132
105
 
133
106
  # Register this action with its valid params when the module is loaded.
134
107
  #
135
108
  # @since 6.2.0
136
109
  ParamsRegistry.register(:search, [
137
- :analyzer,
138
- :analyze_wildcard,
139
- :default_operator,
140
- :df,
141
- :explain,
142
- :stored_fields,
143
- :docvalue_fields,
144
- :from,
145
- :ignore_unavailable,
146
- :ignore_throttled,
147
- :allow_no_indices,
148
- :expand_wildcards,
149
- :lenient,
150
- :preference,
151
- :q,
152
- :routing,
153
- :scroll,
154
- :search_type,
155
- :size,
156
- :sort,
157
- :_source,
158
- :_source_excludes,
159
- :_source_includes,
160
- :terminate_after,
161
- :stats,
162
- :suggest_field,
163
- :suggest_mode,
164
- :suggest_size,
165
- :suggest_text,
166
- :timeout,
167
- :track_scores,
168
- :track_total_hits,
169
- :allow_partial_search_results,
170
- :typed_keys,
171
- :version,
172
- :request_cache,
173
- :batched_reduce_size,
174
- :max_concurrent_shard_requests,
175
- :pre_filter_shard_size,
176
- :rest_total_hits_as_int,
177
- :seq_no_primary_term ].freeze)
110
+ :analyzer,
111
+ :analyze_wildcard,
112
+ :ccs_minimize_roundtrips,
113
+ :default_operator,
114
+ :df,
115
+ :explain,
116
+ :stored_fields,
117
+ :docvalue_fields,
118
+ :from,
119
+ :ignore_unavailable,
120
+ :ignore_throttled,
121
+ :allow_no_indices,
122
+ :expand_wildcards,
123
+ :lenient,
124
+ :preference,
125
+ :q,
126
+ :routing,
127
+ :scroll,
128
+ :search_type,
129
+ :size,
130
+ :sort,
131
+ :_source,
132
+ :_source_excludes,
133
+ :_source_includes,
134
+ :terminate_after,
135
+ :stats,
136
+ :suggest_field,
137
+ :suggest_mode,
138
+ :suggest_size,
139
+ :suggest_text,
140
+ :timeout,
141
+ :track_scores,
142
+ :track_total_hits,
143
+ :allow_partial_search_results,
144
+ :typed_keys,
145
+ :version,
146
+ :seq_no_primary_term,
147
+ :request_cache,
148
+ :batched_reduce_size,
149
+ :max_concurrent_shard_requests,
150
+ :pre_filter_shard_size,
151
+ :rest_total_hits_as_int
152
+ ].freeze)
178
153
  end
179
154
  end
180
155
  end
@@ -1,8 +1,24 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
1
18
  module Elasticsearch
2
19
  module API
3
20
  module Actions
4
-
5
- # Returns the names of indices and shards on which a search request would be executed
21
+ # Returns information about the indices and shards that a search request would be executed against.
6
22
  #
7
23
  # @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
8
24
  # @option arguments [String] :preference Specify the node or shard the operation should be performed on (default: random)
@@ -10,29 +26,41 @@ module Elasticsearch
10
26
  # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node (default: false)
11
27
  # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when unavailable (missing or closed)
12
28
  # @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)
13
- # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, none, all)
29
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, hidden, none, all)
30
+ # @option arguments [Hash] :headers Custom HTTP headers
14
31
  #
15
- # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-shards.html
32
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-shards.html
16
33
  #
17
- def search_shards(arguments={})
18
- method = HTTP_GET
19
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_search_shards' )
34
+ def search_shards(arguments = {})
35
+ headers = arguments.delete(:headers) || {}
36
+
37
+ arguments = arguments.clone
38
+
39
+ _index = arguments.delete(:index)
40
+
41
+ method = Elasticsearch::API::HTTP_GET
42
+ path = if _index
43
+ "#{Utils.__listify(_index)}/_search_shards"
44
+ else
45
+ "_search_shards"
46
+ end
20
47
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
21
- body = nil
22
48
 
23
- perform_request(method, path, params, body).body
49
+ body = nil
50
+ perform_request(method, path, params, body, headers).body
24
51
  end
25
52
 
26
53
  # Register this action with its valid params when the module is loaded.
27
54
  #
28
55
  # @since 6.2.0
29
56
  ParamsRegistry.register(:search_shards, [
30
- :preference,
31
- :routing,
32
- :local,
33
- :ignore_unavailable,
34
- :allow_no_indices,
35
- :expand_wildcards ].freeze)
57
+ :preference,
58
+ :routing,
59
+ :local,
60
+ :ignore_unavailable,
61
+ :allow_no_indices,
62
+ :expand_wildcards
63
+ ].freeze)
36
64
  end
37
65
  end
38
66
  end