opensearch-ruby 1.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +80 -44
  4. data/USER_GUIDE.md +147 -0
  5. data/bin/opensearch_ruby_console +4 -34
  6. data/lib/opensearch/api/actions/abort_benchmark.rb +49 -0
  7. data/lib/opensearch/api/actions/benchmark.rb +88 -0
  8. data/lib/opensearch/api/actions/bulk.rb +91 -0
  9. data/lib/opensearch/api/actions/cat/aliases.rb +79 -0
  10. data/lib/opensearch/api/actions/cat/all_pit_segments.rb +45 -0
  11. data/lib/opensearch/api/actions/cat/allocation.rb +83 -0
  12. data/lib/opensearch/api/actions/cat/cluster_manager.rb +54 -0
  13. data/lib/opensearch/api/actions/cat/count.rb +75 -0
  14. data/lib/opensearch/api/actions/cat/fielddata.rb +77 -0
  15. data/lib/opensearch/api/actions/cat/health.rb +72 -0
  16. data/lib/opensearch/api/actions/cat/help.rb +61 -0
  17. data/lib/opensearch/api/actions/cat/indices.rb +93 -0
  18. data/lib/opensearch/api/actions/cat/master.rb +73 -0
  19. data/lib/opensearch/api/actions/cat/nodeattrs.rb +73 -0
  20. data/lib/opensearch/api/actions/cat/nodes.rb +82 -0
  21. data/lib/opensearch/api/actions/cat/params_registry.rb +69 -0
  22. data/lib/opensearch/api/actions/cat/pending_tasks.rb +76 -0
  23. data/lib/opensearch/api/actions/cat/pit_segments.rb +48 -0
  24. data/lib/opensearch/api/actions/cat/plugins.rb +75 -0
  25. data/lib/opensearch/api/actions/cat/recovery.rb +84 -0
  26. data/lib/opensearch/api/actions/cat/repositories.rb +73 -0
  27. data/lib/opensearch/api/actions/cat/segments.rb +76 -0
  28. data/lib/opensearch/api/actions/cat/shards.rb +85 -0
  29. data/lib/opensearch/api/actions/cat/snapshots.rb +82 -0
  30. data/lib/opensearch/api/actions/cat/tasks.rb +77 -0
  31. data/lib/opensearch/api/actions/cat/templates.rb +80 -0
  32. data/lib/opensearch/api/actions/cat/thread_pool.rb +84 -0
  33. data/lib/opensearch/api/actions/clear_scroll.rb +62 -0
  34. data/lib/opensearch/api/actions/cluster/allocation_explain.rb +67 -0
  35. data/lib/opensearch/api/actions/cluster/delete_component_template.rb +68 -0
  36. data/lib/opensearch/api/actions/cluster/delete_voting_config_exclusions.rb +59 -0
  37. data/lib/opensearch/api/actions/cluster/exists_component_template.rb +70 -0
  38. data/lib/opensearch/api/actions/cluster/get_component_template.rb +70 -0
  39. data/lib/opensearch/api/actions/cluster/get_settings.rb +67 -0
  40. data/lib/opensearch/api/actions/cluster/health.rb +88 -0
  41. data/lib/opensearch/api/actions/cluster/params_registry.rb +69 -0
  42. data/lib/opensearch/api/actions/cluster/pending_tasks.rb +64 -0
  43. data/lib/opensearch/api/actions/cluster/post_voting_config_exclusions.rb +63 -0
  44. data/lib/opensearch/api/actions/cluster/put_component_template.rb +72 -0
  45. data/lib/opensearch/api/actions/cluster/put_settings.rb +68 -0
  46. data/{spec/unit/wrapper_gem_spec.rb → lib/opensearch/api/actions/cluster/remote_info.rb} +20 -17
  47. data/lib/opensearch/api/actions/cluster/reroute.rb +72 -0
  48. data/lib/opensearch/api/actions/cluster/state.rb +87 -0
  49. data/lib/opensearch/api/actions/cluster/stats.rb +68 -0
  50. data/lib/opensearch/api/actions/count.rb +96 -0
  51. data/lib/opensearch/api/actions/create.rb +60 -0
  52. data/lib/opensearch/api/actions/create_pit.rb +45 -0
  53. data/lib/opensearch/api/actions/dangling_indices/delete_dangling_index.rb +70 -0
  54. data/lib/opensearch/api/actions/dangling_indices/import_dangling_index.rb +69 -0
  55. data/lib/opensearch/api/actions/dangling_indices/list_dangling_indices.rb +51 -0
  56. data/lib/opensearch/api/actions/dangling_indices/params_registry.rb +69 -0
  57. data/lib/opensearch/api/actions/delete.rb +89 -0
  58. data/lib/opensearch/api/actions/delete_all_pits.rb +26 -0
  59. data/lib/opensearch/api/actions/delete_by_query.rb +133 -0
  60. data/lib/opensearch/api/actions/delete_by_query_rethrottle.rb +62 -0
  61. data/lib/opensearch/api/actions/delete_by_rethrottle.rb +55 -0
  62. data/lib/opensearch/api/actions/delete_pit.rb +30 -0
  63. data/lib/opensearch/api/actions/delete_script.rb +66 -0
  64. data/lib/opensearch/api/actions/exists.rb +94 -0
  65. data/lib/opensearch/api/actions/exists_source.rb +89 -0
  66. data/lib/opensearch/api/actions/explain.rb +99 -0
  67. data/lib/opensearch/api/actions/features/get_features.rb +61 -0
  68. data/lib/opensearch/api/actions/features/params_registry.rb +69 -0
  69. data/{Rakefile → lib/opensearch/api/actions/features/reset_features.rb} +27 -35
  70. data/lib/opensearch/api/actions/field_caps.rb +78 -0
  71. data/lib/opensearch/api/actions/get.rb +93 -0
  72. data/lib/opensearch/api/actions/get_all_pits.rb +26 -0
  73. data/lib/opensearch/api/actions/get_script.rb +64 -0
  74. data/lib/opensearch/api/actions/get_script_context.rb +53 -0
  75. data/lib/opensearch/api/actions/get_script_languages.rb +53 -0
  76. data/lib/opensearch/api/actions/get_source.rb +87 -0
  77. data/lib/opensearch/api/actions/http/connect.rb +28 -0
  78. data/lib/opensearch/api/actions/http/delete.rb +28 -0
  79. data/lib/opensearch/api/actions/http/get.rb +28 -0
  80. data/lib/opensearch/api/actions/http/head.rb +28 -0
  81. data/lib/opensearch/api/actions/http/options.rb +28 -0
  82. data/lib/opensearch/api/actions/http/patch.rb +28 -0
  83. data/lib/opensearch/api/actions/http/post.rb +28 -0
  84. data/lib/opensearch/api/actions/http/put.rb +28 -0
  85. data/lib/opensearch/api/actions/http/request.rb +27 -0
  86. data/lib/opensearch/api/actions/http/trace.rb +28 -0
  87. data/lib/opensearch/api/actions/index.rb +96 -0
  88. data/lib/opensearch/api/actions/indices/add_block.rb +78 -0
  89. data/lib/opensearch/api/actions/indices/analyze.rb +71 -0
  90. data/lib/opensearch/api/actions/indices/clear_cache.rb +79 -0
  91. data/lib/opensearch/api/actions/indices/clone.rb +75 -0
  92. data/lib/opensearch/api/actions/indices/close.rb +76 -0
  93. data/lib/opensearch/api/actions/indices/create.rb +71 -0
  94. data/lib/opensearch/api/actions/indices/delete.rb +78 -0
  95. data/lib/opensearch/api/actions/indices/delete_alias.rb +72 -0
  96. data/lib/opensearch/api/actions/indices/delete_index_template.rb +68 -0
  97. data/lib/opensearch/api/actions/indices/delete_template.rb +72 -0
  98. data/lib/opensearch/api/actions/indices/disk_usage.rb +76 -0
  99. data/lib/opensearch/api/actions/indices/exists.rb +79 -0
  100. data/lib/opensearch/api/actions/indices/exists_alias.rb +82 -0
  101. data/lib/opensearch/api/actions/indices/exists_index_template.rb +72 -0
  102. data/lib/opensearch/api/actions/indices/exists_template.rb +75 -0
  103. data/lib/opensearch/api/actions/indices/field_usage_stats.rb +74 -0
  104. data/lib/opensearch/api/actions/indices/flush.rb +74 -0
  105. data/lib/opensearch/api/actions/indices/forcemerge.rb +76 -0
  106. data/lib/opensearch/api/actions/indices/get.rb +78 -0
  107. data/lib/opensearch/api/actions/indices/get_alias.rb +79 -0
  108. data/lib/opensearch/api/actions/indices/get_field_mapping.rb +83 -0
  109. data/lib/opensearch/api/actions/indices/get_index_template.rb +72 -0
  110. data/lib/opensearch/api/actions/indices/get_mapping.rb +81 -0
  111. data/lib/opensearch/api/actions/indices/get_settings.rb +87 -0
  112. data/lib/opensearch/api/actions/indices/get_template.rb +72 -0
  113. data/lib/opensearch/api/actions/indices/get_upgrade.rb +75 -0
  114. data/lib/opensearch/api/actions/indices/open.rb +76 -0
  115. data/lib/opensearch/api/actions/indices/params_registry.rb +69 -0
  116. data/lib/opensearch/api/actions/indices/put_alias.rb +73 -0
  117. data/lib/opensearch/api/actions/indices/put_index_template.rb +72 -0
  118. data/lib/opensearch/api/actions/indices/put_mapping.rb +82 -0
  119. data/lib/opensearch/api/actions/indices/put_settings.rb +83 -0
  120. data/lib/opensearch/api/actions/indices/put_template.rb +72 -0
  121. data/lib/opensearch/api/actions/indices/recovery.rb +68 -0
  122. data/lib/opensearch/api/actions/indices/refresh.rb +70 -0
  123. data/lib/opensearch/api/actions/indices/resolve_index.rb +68 -0
  124. data/lib/opensearch/api/actions/indices/rollover.rb +81 -0
  125. data/lib/opensearch/api/actions/indices/segments.rb +72 -0
  126. data/lib/opensearch/api/actions/indices/shard_stores.rb +72 -0
  127. data/lib/opensearch/api/actions/indices/shrink.rb +77 -0
  128. data/lib/opensearch/api/actions/indices/simulate_index_template.rb +71 -0
  129. data/lib/opensearch/api/actions/indices/simulate_template.rb +73 -0
  130. data/lib/opensearch/api/actions/indices/split.rb +77 -0
  131. data/lib/opensearch/api/actions/indices/stats.rb +100 -0
  132. data/lib/opensearch/api/actions/indices/update_aliases.rb +66 -0
  133. data/lib/opensearch/api/actions/indices/upgrade.rb +79 -0
  134. data/lib/opensearch/api/actions/indices/validate_query.rb +99 -0
  135. data/{Gemfile → lib/opensearch/api/actions/info.rb} +19 -8
  136. data/lib/opensearch/api/actions/ingest/delete_pipeline.rb +68 -0
  137. data/lib/opensearch/api/actions/ingest/geo_ip_stats.rb +51 -0
  138. data/lib/opensearch/api/actions/ingest/get_pipeline.rb +70 -0
  139. data/lib/opensearch/api/actions/ingest/params_registry.rb +69 -0
  140. data/lib/opensearch/api/actions/ingest/processor_grok.rb +51 -0
  141. data/lib/opensearch/api/actions/ingest/put_pipeline.rb +70 -0
  142. data/lib/opensearch/api/actions/ingest/simulate.rb +69 -0
  143. data/lib/opensearch/api/actions/mget.rb +86 -0
  144. data/lib/opensearch/api/actions/msearch.rb +105 -0
  145. data/lib/opensearch/api/actions/msearch_template.rb +89 -0
  146. data/lib/opensearch/api/actions/mtermvectors.rb +102 -0
  147. data/lib/opensearch/api/actions/nodes/hot_threads.rb +81 -0
  148. data/lib/opensearch/api/actions/nodes/info.rb +75 -0
  149. data/lib/opensearch/api/actions/nodes/params_registry.rb +69 -0
  150. data/lib/opensearch/api/actions/nodes/reload_secure_settings.rb +67 -0
  151. data/lib/opensearch/api/actions/nodes/shutdown.rb +65 -0
  152. data/lib/opensearch/api/actions/nodes/stats.rb +96 -0
  153. data/lib/opensearch/api/actions/nodes/usage.rb +73 -0
  154. data/lib/opensearch/api/actions/params_registry.rb +67 -0
  155. data/lib/opensearch/api/actions/ping.rb +54 -0
  156. data/lib/opensearch/api/actions/put_script.rb +76 -0
  157. data/lib/opensearch/api/actions/rank_eval.rb +77 -0
  158. data/lib/opensearch/api/actions/reindex.rb +76 -0
  159. data/lib/opensearch/api/actions/reindex_rethrottle.rb +62 -0
  160. data/{spec/integration/validation_integration_spec.rb → lib/opensearch/api/actions/remote/info.rb} +17 -11
  161. data/lib/opensearch/api/actions/remote_store/restore.rb +43 -0
  162. data/lib/opensearch/api/actions/render_search_template.rb +62 -0
  163. data/lib/opensearch/api/actions/scripts_painless_execute.rb +59 -0
  164. data/lib/opensearch/api/actions/scroll.rb +78 -0
  165. data/lib/opensearch/api/actions/search.rb +159 -0
  166. data/lib/opensearch/api/actions/search_shards.rb +74 -0
  167. data/lib/opensearch/api/actions/search_template.rb +96 -0
  168. data/lib/opensearch/api/actions/security/change_password.rb +39 -0
  169. data/lib/opensearch/api/actions/security/create_action_group.rb +42 -0
  170. data/lib/opensearch/api/actions/security/create_role.rb +43 -0
  171. data/lib/opensearch/api/actions/security/create_role_mapping.rb +43 -0
  172. data/lib/opensearch/api/actions/security/create_tenant.rb +42 -0
  173. data/lib/opensearch/api/actions/security/create_user.rb +43 -0
  174. data/lib/opensearch/api/actions/security/delete_action_group.rb +41 -0
  175. data/lib/opensearch/api/actions/security/delete_distinguished_names.rb +41 -0
  176. data/lib/opensearch/api/actions/security/delete_role.rb +41 -0
  177. data/lib/opensearch/api/actions/security/delete_role_mapping.rb +41 -0
  178. data/lib/opensearch/api/actions/security/delete_tenant.rb +41 -0
  179. data/lib/opensearch/api/actions/security/delete_user.rb +41 -0
  180. data/lib/opensearch/api/actions/security/flush_cache.rb +36 -0
  181. data/lib/opensearch/api/actions/security/get_account_details.rb +36 -0
  182. data/lib/opensearch/api/actions/security/get_action_group.rb +41 -0
  183. data/lib/opensearch/api/actions/security/get_action_groups.rb +36 -0
  184. data/lib/opensearch/api/actions/security/get_audit_configuration.rb +36 -0
  185. data/lib/opensearch/api/actions/security/get_certificates.rb +36 -0
  186. data/lib/opensearch/api/actions/security/get_configuration.rb +36 -0
  187. data/lib/opensearch/api/actions/security/get_distinguished_names.rb +39 -0
  188. data/lib/opensearch/api/actions/security/get_role.rb +41 -0
  189. data/lib/opensearch/api/actions/security/get_role_mapping.rb +41 -0
  190. data/lib/opensearch/api/actions/security/get_role_mappings.rb +36 -0
  191. data/lib/opensearch/api/actions/security/get_roles.rb +36 -0
  192. data/lib/opensearch/api/actions/security/get_tenant.rb +41 -0
  193. data/lib/opensearch/api/actions/security/get_tenants.rb +36 -0
  194. data/lib/opensearch/api/actions/security/get_user.rb +41 -0
  195. data/lib/opensearch/api/actions/security/get_users.rb +36 -0
  196. data/lib/opensearch/api/actions/security/health.rb +36 -0
  197. data/lib/opensearch/api/actions/security/patch_action_group.rb +42 -0
  198. data/lib/opensearch/api/actions/security/patch_action_groups.rb +37 -0
  199. data/lib/opensearch/api/actions/security/patch_audit_configuration.rb +39 -0
  200. data/lib/opensearch/api/actions/security/patch_configuration.rb +39 -0
  201. data/lib/opensearch/api/actions/security/patch_distinguished_names.rb +39 -0
  202. data/lib/opensearch/api/actions/security/patch_role.rb +43 -0
  203. data/lib/opensearch/api/actions/security/patch_role_mapping.rb +43 -0
  204. data/lib/opensearch/api/actions/security/patch_role_mappings.rb +39 -0
  205. data/lib/opensearch/api/actions/security/patch_roles.rb +39 -0
  206. data/lib/opensearch/api/actions/security/patch_tenant.rb +43 -0
  207. data/lib/opensearch/api/actions/security/patch_tenants.rb +39 -0
  208. data/lib/opensearch/api/actions/security/patch_user.rb +43 -0
  209. data/lib/opensearch/api/actions/security/patch_users.rb +39 -0
  210. data/lib/opensearch/api/actions/security/reload_http_certificates.rb +36 -0
  211. data/lib/opensearch/api/actions/security/reload_transport_certificates.rb +36 -0
  212. data/lib/opensearch/api/actions/security/update_audit_configuration.rb +39 -0
  213. data/lib/opensearch/api/actions/security/update_configuration.rb +39 -0
  214. data/lib/opensearch/api/actions/security/update_distinguished_names.rb +42 -0
  215. data/lib/opensearch/api/actions/shutdown/delete_node.rb +60 -0
  216. data/lib/opensearch/api/actions/shutdown/get_node.rb +62 -0
  217. data/lib/opensearch/api/actions/shutdown/params_registry.rb +69 -0
  218. data/lib/opensearch/api/actions/shutdown/put_node.rb +62 -0
  219. data/lib/opensearch/api/actions/snapshot/cleanup_repository.rb +68 -0
  220. data/lib/opensearch/api/actions/snapshot/clone.rb +76 -0
  221. data/lib/opensearch/api/actions/snapshot/create.rb +73 -0
  222. data/lib/opensearch/api/actions/snapshot/create_repository.rb +72 -0
  223. data/lib/opensearch/api/actions/snapshot/delete.rb +74 -0
  224. data/lib/opensearch/api/actions/snapshot/delete_repository.rb +72 -0
  225. data/lib/opensearch/api/actions/snapshot/get.rb +82 -0
  226. data/lib/opensearch/api/actions/snapshot/get_features.rb +61 -0
  227. data/lib/opensearch/api/actions/snapshot/get_repository.rb +73 -0
  228. data/lib/opensearch/api/actions/snapshot/params_registry.rb +69 -0
  229. data/lib/opensearch/api/actions/snapshot/repository_analyze.rb +84 -0
  230. data/lib/opensearch/api/actions/snapshot/restore.rb +73 -0
  231. data/lib/opensearch/api/actions/snapshot/status.rb +79 -0
  232. data/lib/opensearch/api/actions/snapshot/verify_repository.rb +68 -0
  233. data/lib/opensearch/api/actions/tasks/cancel.rb +76 -0
  234. data/lib/opensearch/api/actions/tasks/get.rb +68 -0
  235. data/lib/opensearch/api/actions/tasks/list.rb +75 -0
  236. data/lib/opensearch/api/actions/tasks/params_registry.rb +69 -0
  237. data/lib/opensearch/api/actions/termvectors.rb +108 -0
  238. data/lib/opensearch/api/actions/update.rb +99 -0
  239. data/lib/opensearch/api/actions/update_by_query.rb +137 -0
  240. data/lib/opensearch/api/actions/update_by_query_rethrottle.rb +62 -0
  241. data/lib/opensearch/api/namespace/cat.rb +47 -0
  242. data/lib/opensearch/api/namespace/cluster.rb +47 -0
  243. data/lib/opensearch/api/namespace/common.rb +72 -0
  244. data/lib/opensearch/api/namespace/dangling_indices.rb +47 -0
  245. data/lib/opensearch/api/namespace/features.rb +47 -0
  246. data/lib/opensearch/api/namespace/http.rb +30 -0
  247. data/lib/opensearch/api/namespace/indices.rb +47 -0
  248. data/lib/opensearch/api/namespace/ingest.rb +47 -0
  249. data/lib/opensearch/api/namespace/nodes.rb +47 -0
  250. data/lib/opensearch/api/namespace/remote.rb +47 -0
  251. data/lib/opensearch/api/namespace/remote_store.rb +30 -0
  252. data/lib/opensearch/api/namespace/security.rb +30 -0
  253. data/lib/opensearch/api/namespace/shutdown.rb +47 -0
  254. data/lib/opensearch/api/namespace/snapshot.rb +47 -0
  255. data/lib/opensearch/api/namespace/tasks.rb +47 -0
  256. data/lib/opensearch/api/utils.rb +296 -0
  257. data/lib/opensearch/api.rb +104 -0
  258. data/lib/opensearch/dsl/search/aggregation.rb +112 -0
  259. data/lib/opensearch/dsl/search/aggregations/avg.rb +49 -0
  260. data/lib/opensearch/dsl/search/aggregations/cardinality.rb +56 -0
  261. data/lib/opensearch/dsl/search/aggregations/children.rb +63 -0
  262. data/lib/opensearch/dsl/search/aggregations/composite.rb +68 -0
  263. data/lib/opensearch/dsl/search/aggregations/date_histogram.rb +64 -0
  264. data/lib/opensearch/dsl/search/aggregations/date_range.rb +59 -0
  265. data/lib/opensearch/dsl/search/aggregations/extended_stats.rb +48 -0
  266. data/lib/opensearch/dsl/search/aggregations/filter.rb +54 -0
  267. data/lib/opensearch/dsl/search/aggregations/filters.rb +59 -0
  268. data/lib/opensearch/dsl/search/aggregations/geo_bounds.rb +68 -0
  269. data/lib/opensearch/dsl/search/aggregations/geo_distance.rb +63 -0
  270. data/lib/opensearch/dsl/search/aggregations/geohash_grid.rb +59 -0
  271. data/lib/opensearch/dsl/search/aggregations/global.rb +52 -0
  272. data/lib/opensearch/dsl/search/aggregations/histogram.rb +59 -0
  273. data/lib/opensearch/dsl/search/aggregations/ip_range.rb +55 -0
  274. data/lib/opensearch/dsl/search/aggregations/max.rb +49 -0
  275. data/lib/opensearch/dsl/search/aggregations/min.rb +49 -0
  276. data/lib/opensearch/dsl/search/aggregations/missing.rb +59 -0
  277. data/lib/opensearch/dsl/search/aggregations/nested.rb +57 -0
  278. data/lib/opensearch/dsl/search/aggregations/percentile_ranks.rb +58 -0
  279. data/lib/opensearch/dsl/search/aggregations/percentiles.rb +57 -0
  280. data/lib/opensearch/dsl/search/aggregations/pipeline/avg_bucket.rb +58 -0
  281. data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_script.rb +60 -0
  282. data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_selector.rb +59 -0
  283. data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_sort.rb +111 -0
  284. data/lib/opensearch/dsl/search/aggregations/pipeline/cumulative_sum.rb +57 -0
  285. data/lib/opensearch/dsl/search/aggregations/pipeline/derivative.rb +58 -0
  286. data/lib/opensearch/dsl/search/aggregations/pipeline/extended_stats_bucket.rb +58 -0
  287. data/lib/opensearch/dsl/search/aggregations/pipeline/max_bucket.rb +58 -0
  288. data/lib/opensearch/dsl/search/aggregations/pipeline/min_bucket.rb +58 -0
  289. data/lib/opensearch/dsl/search/aggregations/pipeline/moving_avg.rb +66 -0
  290. data/lib/opensearch/dsl/search/aggregations/pipeline/percentiles_bucket.rb +60 -0
  291. data/lib/opensearch/dsl/search/aggregations/pipeline/serial_diff.rb +60 -0
  292. data/lib/opensearch/dsl/search/aggregations/pipeline/stats_bucket.rb +58 -0
  293. data/lib/opensearch/dsl/search/aggregations/pipeline/sum_bucket.rb +58 -0
  294. data/lib/opensearch/dsl/search/aggregations/range.rb +77 -0
  295. data/lib/opensearch/dsl/search/aggregations/reverse_nested.rb +61 -0
  296. data/lib/opensearch/dsl/search/aggregations/scripted_metric.rb +63 -0
  297. data/lib/opensearch/dsl/search/aggregations/significant_terms.rb +69 -0
  298. data/lib/opensearch/dsl/search/aggregations/stats.rb +61 -0
  299. data/lib/opensearch/dsl/search/aggregations/sum.rb +49 -0
  300. data/lib/opensearch/dsl/search/aggregations/terms.rb +66 -0
  301. data/lib/opensearch/dsl/search/aggregations/top_hits.rb +59 -0
  302. data/lib/opensearch/dsl/search/aggregations/value_count.rb +49 -0
  303. data/lib/opensearch/dsl/search/base_aggregation_component.rb +83 -0
  304. data/lib/opensearch/dsl/search/base_component.rb +191 -0
  305. data/lib/opensearch/dsl/search/base_compound_filter_component.rb +124 -0
  306. data/lib/opensearch/dsl/search/filter.rb +82 -0
  307. data/lib/opensearch/dsl/search/filters/and.rb +70 -0
  308. data/lib/opensearch/dsl/search/filters/bool.rb +103 -0
  309. data/lib/opensearch/dsl/search/filters/exists.rb +56 -0
  310. data/lib/opensearch/dsl/search/filters/geo_bounding_box.rb +69 -0
  311. data/lib/opensearch/dsl/search/filters/geo_distance.rb +81 -0
  312. data/lib/opensearch/dsl/search/filters/geo_distance_range.rb +56 -0
  313. data/lib/opensearch/dsl/search/filters/geo_polygon.rb +65 -0
  314. data/lib/opensearch/dsl/search/filters/geo_shape.rb +59 -0
  315. data/lib/opensearch/dsl/search/filters/geohash_cell.rb +71 -0
  316. data/lib/opensearch/dsl/search/filters/has_child.rb +98 -0
  317. data/lib/opensearch/dsl/search/filters/has_parent.rb +97 -0
  318. data/lib/opensearch/dsl/search/filters/ids.rb +56 -0
  319. data/lib/opensearch/dsl/search/filters/indices.rb +101 -0
  320. data/lib/opensearch/dsl/search/filters/limit.rb +55 -0
  321. data/lib/opensearch/dsl/search/filters/match_all.rb +52 -0
  322. data/lib/opensearch/dsl/search/filters/missing.rb +58 -0
  323. data/lib/opensearch/dsl/search/filters/nested.rb +91 -0
  324. data/lib/opensearch/dsl/search/filters/not.rb +98 -0
  325. data/lib/opensearch/dsl/search/filters/or.rb +70 -0
  326. data/lib/opensearch/dsl/search/filters/prefix.rb +53 -0
  327. data/lib/opensearch/dsl/search/filters/query.rb +77 -0
  328. data/lib/opensearch/dsl/search/filters/range.rb +63 -0
  329. data/lib/opensearch/dsl/search/filters/regexp.rb +58 -0
  330. data/lib/opensearch/dsl/search/filters/script.rb +56 -0
  331. data/lib/opensearch/dsl/search/filters/term.rb +55 -0
  332. data/lib/opensearch/dsl/search/filters/terms.rb +56 -0
  333. data/lib/opensearch/dsl/search/filters/type.rb +58 -0
  334. data/lib/opensearch/dsl/search/highlight.rb +117 -0
  335. data/lib/opensearch/dsl/search/options.rb +80 -0
  336. data/lib/opensearch/dsl/search/queries/bool.rb +110 -0
  337. data/lib/opensearch/dsl/search/queries/boosting.rb +57 -0
  338. data/lib/opensearch/dsl/search/queries/common.rb +62 -0
  339. data/lib/opensearch/dsl/search/queries/constant_score.rb +90 -0
  340. data/lib/opensearch/dsl/search/queries/dis_max.rb +59 -0
  341. data/lib/opensearch/dsl/search/queries/exists.rb +68 -0
  342. data/lib/opensearch/dsl/search/queries/filtered.rb +101 -0
  343. data/lib/opensearch/dsl/search/queries/function_score.rb +122 -0
  344. data/lib/opensearch/dsl/search/queries/fuzzy.rb +69 -0
  345. data/lib/opensearch/dsl/search/queries/fuzzy_like_this.rb +61 -0
  346. data/lib/opensearch/dsl/search/queries/fuzzy_like_this_field.rb +60 -0
  347. data/lib/opensearch/dsl/search/queries/geo_shape.rb +54 -0
  348. data/lib/opensearch/dsl/search/queries/has_child.rb +82 -0
  349. data/lib/opensearch/dsl/search/queries/has_parent.rb +82 -0
  350. data/lib/opensearch/dsl/search/queries/ids.rb +52 -0
  351. data/lib/opensearch/dsl/search/queries/indices.rb +58 -0
  352. data/lib/opensearch/dsl/search/queries/match.rb +67 -0
  353. data/lib/opensearch/dsl/search/queries/match_all.rb +50 -0
  354. data/lib/opensearch/dsl/search/queries/match_phrase.rb +56 -0
  355. data/lib/opensearch/dsl/search/queries/match_phrase_prefix.rb +55 -0
  356. data/lib/opensearch/dsl/search/queries/more_like_this.rb +88 -0
  357. data/lib/opensearch/dsl/search/queries/multi_match.rb +69 -0
  358. data/lib/opensearch/dsl/search/queries/nested.rb +80 -0
  359. data/lib/opensearch/dsl/search/queries/prefix.rb +54 -0
  360. data/lib/opensearch/dsl/search/queries/query_string.rb +75 -0
  361. data/lib/opensearch/dsl/search/queries/range.rb +71 -0
  362. data/lib/opensearch/dsl/search/queries/regexp.rb +55 -0
  363. data/lib/opensearch/dsl/search/queries/simple_query_string.rb +64 -0
  364. data/lib/opensearch/dsl/search/queries/span_first.rb +52 -0
  365. data/lib/opensearch/dsl/search/queries/span_multi.rb +52 -0
  366. data/lib/opensearch/dsl/search/queries/span_near.rb +56 -0
  367. data/lib/opensearch/dsl/search/queries/span_not.rb +57 -0
  368. data/lib/opensearch/dsl/search/queries/span_or.rb +52 -0
  369. data/lib/opensearch/dsl/search/queries/span_term.rb +50 -0
  370. data/lib/opensearch/dsl/search/queries/template.rb +55 -0
  371. data/lib/opensearch/dsl/search/queries/term.rb +50 -0
  372. data/lib/opensearch/dsl/search/queries/terms.rb +51 -0
  373. data/lib/opensearch/dsl/search/queries/top_children.rb +82 -0
  374. data/lib/opensearch/dsl/search/queries/wildcard.rb +54 -0
  375. data/lib/opensearch/dsl/search/query.rb +82 -0
  376. data/lib/opensearch/dsl/search/sort.rb +83 -0
  377. data/lib/opensearch/dsl/search/suggest.rb +52 -0
  378. data/lib/opensearch/dsl/search.rb +282 -0
  379. data/lib/opensearch/dsl/utils.rb +49 -0
  380. data/lib/opensearch/dsl.rb +69 -0
  381. data/lib/opensearch/transport/client.rb +362 -0
  382. data/lib/opensearch/transport/redacted.rb +82 -0
  383. data/lib/opensearch/transport/transport/base.rb +453 -0
  384. data/lib/opensearch/transport/transport/connections/collection.rb +134 -0
  385. data/lib/opensearch/transport/transport/connections/connection.rb +168 -0
  386. data/lib/opensearch/transport/transport/connections/selector.rb +100 -0
  387. data/lib/opensearch/transport/transport/errors.rb +97 -0
  388. data/lib/opensearch/transport/transport/http/curb.rb +139 -0
  389. data/lib/opensearch/transport/transport/http/faraday.rb +101 -0
  390. data/lib/opensearch/transport/transport/http/manticore.rb +188 -0
  391. data/lib/opensearch/transport/transport/loggable.rb +92 -0
  392. data/lib/opensearch/transport/transport/response.rb +47 -0
  393. data/lib/opensearch/transport/transport/serializer/multi_json.rb +61 -0
  394. data/lib/opensearch/transport/transport/sniffer.rb +110 -0
  395. data/lib/opensearch/transport.rb +44 -0
  396. data/lib/opensearch/version.rb +1 -1
  397. data/lib/opensearch-dsl.rb +27 -0
  398. data/lib/opensearch.rb +13 -13
  399. data/opensearch-ruby.gemspec +69 -0
  400. data/spec/spec_helper.rb +95 -4
  401. data/test/dsl/integration/search_aggregation_children_test.rb +91 -0
  402. data/test/dsl/integration/search_aggregation_geo_test.rb +112 -0
  403. data/test/dsl/integration/search_aggregation_nested_test.rb +129 -0
  404. data/test/dsl/integration/search_aggregations_test.rb +288 -0
  405. data/test/dsl/integration/search_filters_test.rb +290 -0
  406. data/test/dsl/integration/search_options_test.rb +54 -0
  407. data/test/dsl/integration/search_query_test.rb +98 -0
  408. data/test/dsl/integration/search_size_from_test.rb +71 -0
  409. data/test/dsl/integration/search_sort_test.rb +57 -0
  410. data/test/dsl/integration/search_suggest_test.rb +107 -0
  411. data/test/dsl/integration/search_test.rb +81 -0
  412. data/test/dsl/test_helper.rb +95 -0
  413. data/test/dsl/unit/dsl_test.rb +44 -0
  414. data/test/dsl/unit/search_aggregation_test.rb +96 -0
  415. data/test/dsl/unit/search_base_aggregation_component_test.rb +66 -0
  416. data/test/dsl/unit/search_base_component_test.rb +210 -0
  417. data/test/dsl/unit/search_filter_test.rb +84 -0
  418. data/test/dsl/unit/search_highlight_test.rb +103 -0
  419. data/test/dsl/unit/search_options_test.rb +114 -0
  420. data/test/dsl/unit/search_query_test.rb +88 -0
  421. data/test/dsl/unit/search_size_from_test.rb +68 -0
  422. data/test/dsl/unit/search_sort_test.rb +91 -0
  423. data/test/dsl/unit/search_suggest_test.rb +46 -0
  424. data/test/dsl/unit/search_test.rb +268 -0
  425. data/test/dsl/unit/utils_test.rb +47 -0
  426. data/test/transport/integration/transport_test.rb +117 -0
  427. data/test/transport/profile/client_benchmark_test.rb +141 -0
  428. data/test/transport/test_helper.rb +97 -0
  429. data/test/transport/unit/connection_test.rb +145 -0
  430. data/test/transport/unit/response_test.rb +46 -0
  431. data/{spec/integration/client_integration_spec.rb → test/transport/unit/serializer_test.rb} +10 -27
  432. data/test/transport/unit/transport_base_test.rb +673 -0
  433. data/test/transport/unit/transport_curb_test.rb +143 -0
  434. data/test/transport/unit/transport_faraday_test.rb +237 -0
  435. data/test/transport/unit/transport_manticore_test.rb +191 -0
  436. data.tar.gz.sig +0 -0
  437. metadata +502 -187
  438. metadata.gz.sig +0 -0
  439. data/.gitignore +0 -21
  440. data/opensearch.gemspec +0 -81
  441. data/spec/unit/opensearch_product_validation_spec.rb +0 -198
  442. /data/{LICENSE → LICENSE.txt} +0 -0
@@ -0,0 +1,83 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module DSL
29
+ module Search
30
+ # Wraps the `sort` part of a search definition
31
+ #
32
+ #
33
+ class Sort
34
+ include BaseComponent
35
+
36
+ def initialize(*args, &block)
37
+ @value = []
38
+ super
39
+ end
40
+
41
+ # DSL method to specify sorting item
42
+ #
43
+ # @example
44
+ #
45
+ # search do
46
+ # sort do
47
+ # by :category
48
+ # by :clicks, order: 'desc'
49
+ # end
50
+ # end
51
+ #
52
+ def by(name, direction = nil)
53
+ @value << (direction ? { name => direction } : name)
54
+ self
55
+ end
56
+
57
+ # Convert the definition to a Hash
58
+ #
59
+ # @return [Hash]
60
+ #
61
+ def to_hash
62
+ if @block
63
+ call unless @block_called
64
+ @block_called = true
65
+ elsif @args && !@args.empty? && !@value.include?(@args)
66
+ @value << @args
67
+ end
68
+
69
+ @hash = @value.flatten
70
+ @hash
71
+ end
72
+
73
+ # Return whether the definition is empty
74
+ #
75
+ # @return [Boolean]
76
+ #
77
+ def empty?
78
+ to_hash.empty?
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,52 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module DSL
29
+ module Search
30
+ # Wraps the `suggest` part of a search definition
31
+ #
32
+ #
33
+ class Suggest
34
+ include BaseComponent
35
+
36
+ def initialize(key, options = {}, &block)
37
+ @key = key
38
+ @options = options
39
+ @block = block
40
+ end
41
+
42
+ # Convert the definition to a Hash
43
+ #
44
+ # @return [Hash]
45
+ #
46
+ def to_hash
47
+ { @key => @options }
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,282 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module DSL
29
+ # Provides DSL methods for building the search definition
30
+ # (queries, filters, aggregations, sorting, etc)
31
+ #
32
+ module Search
33
+ # Initialize a new Search object
34
+ #
35
+ # @example Building a search definition declaratively
36
+ #
37
+ # definition = search do
38
+ # query do
39
+ # match title: 'test'
40
+ # end
41
+ # end
42
+ # definition.to_hash
43
+ # => {:query=>{:match=>{:title=>"test"}}}
44
+ #
45
+ # @example Using the class imperatively
46
+ #
47
+ # definition = Search.new
48
+ # query = Queries::Match.new title: 'test'
49
+ # definition.query query
50
+ # definition.to_hash
51
+ # # => {:query=>{:match=>{:title=>"test"}}}
52
+ #
53
+ #
54
+ def search(*args, &block)
55
+ Search.new(*args, &block)
56
+ end
57
+
58
+ extend self
59
+
60
+ # Wraps the whole search definition (queries, filters, aggregations, sorting, etc)
61
+ #
62
+ class Search
63
+ attr_accessor :aggregations
64
+
65
+ def initialize(*args, &block)
66
+ @options = Options.new(*args)
67
+ return unless block
68
+ block.arity < 1 ? instance_eval(&block) : block.call(self)
69
+ end
70
+
71
+ # DSL method for building or accessing the `query` part of a search definition
72
+ #
73
+ # @return [self, {Query}]
74
+ #
75
+ def query(*args, &block)
76
+ if block
77
+ @query = Query.new(*args, &block)
78
+ self
79
+ elsif !args.empty?
80
+ @query = args.first
81
+ self
82
+ else
83
+ @query
84
+ end
85
+ end
86
+
87
+ # Set the query part of a search definition
88
+ #
89
+ def query=(value)
90
+ query value
91
+ end
92
+
93
+ # DSL method for building the `filter` part of a search definition
94
+ #
95
+ # @return [self]
96
+ #
97
+ def filter(*args, &block)
98
+ if block
99
+ @filter = Filter.new(*args, &block)
100
+ self
101
+ elsif !args.empty?
102
+ @filter = args.first
103
+ self
104
+ else
105
+ @filter
106
+ end
107
+ end
108
+
109
+ # Set the filter part of a search definition
110
+ #
111
+ def filter=(value)
112
+ filter value
113
+ end
114
+
115
+ # DSL method for building the `post_filter` part of a search definition
116
+ #
117
+ # @return [self]
118
+ #
119
+ def post_filter(*args, &block)
120
+ if block
121
+ @post_filter = Filter.new(*args, &block)
122
+ self
123
+ elsif !args.empty?
124
+ @post_filter = args.first
125
+ self
126
+ else
127
+ @post_filter
128
+ end
129
+ end
130
+
131
+ # Set the post_filter part of a search definition
132
+ #
133
+ def post_filter=(value)
134
+ post_filter value
135
+ end
136
+
137
+ # DSL method for building the `aggregations` part of a search definition
138
+ #
139
+ # @return [self]
140
+ #
141
+ def aggregation(*args, &block)
142
+ @aggregations ||= AggregationsCollection.new
143
+
144
+ if block
145
+ @aggregations.update args.first => Aggregation.new(*args, &block)
146
+ else
147
+ name = args.shift
148
+ @aggregations.update name => args.shift
149
+ end
150
+ self
151
+ end
152
+
153
+ # Set the aggregations part of a search definition
154
+ #
155
+
156
+ # DSL method for building the `highlight` part of a search definition
157
+ #
158
+ # @return [self]
159
+ #
160
+ def highlight(*args, &block)
161
+ if !args.empty? || block
162
+ @highlight = Highlight.new(*args, &block)
163
+ self
164
+ else
165
+ @highlight
166
+ end
167
+ end
168
+
169
+ # DSL method for building the `sort` part of a search definition
170
+ #
171
+ # @return [self]
172
+ #
173
+ def sort(*args, &block)
174
+ if !args.empty? || block
175
+ @sort = Sort.new(*args, &block)
176
+ self
177
+ else
178
+ @sort
179
+ end
180
+ end
181
+
182
+ # Set the sort part of a search definition
183
+ #
184
+ attr_writer :sort
185
+
186
+ # DSL method for building the `stored_fields` part of a search definition
187
+ #
188
+ # @return [self]
189
+ #
190
+ def stored_fields(value = nil)
191
+ if value
192
+ @stored_fields = value
193
+ self
194
+ else
195
+ @stored_fields
196
+ end
197
+ end; alias stored_fields= stored_fields
198
+
199
+ # DSL method for building the `size` part of a search definition
200
+ #
201
+ # @return [self]
202
+ #
203
+ def size(value = nil)
204
+ if value
205
+ @size = value
206
+ self
207
+ else
208
+ @size
209
+ end
210
+ end; alias size= size
211
+
212
+ # DSL method for building the `from` part of a search definition
213
+ #
214
+ # @return [self]
215
+ #
216
+ def from(value = nil)
217
+ if value
218
+ @from = value
219
+ self
220
+ else
221
+ @from
222
+ end
223
+ end; alias from= from
224
+
225
+ # DSL method for building the `suggest` part of a search definition
226
+ #
227
+ # @return [self]
228
+ #
229
+ def suggest(*args, &block)
230
+ if !args.empty? || block
231
+ @suggest ||= {}
232
+ key, options = args
233
+ @suggest.update key => Suggest.new(key, options, &block)
234
+ self
235
+ else
236
+ @suggest
237
+ end
238
+ end
239
+
240
+ # Set the suggest part of a search definition
241
+ #
242
+ attr_writer :suggest
243
+
244
+ # Delegates to the methods provided by the {Options} class
245
+ #
246
+ def method_missing(name, *args, &block)
247
+ return super unless @options.respond_to? name
248
+ @options.__send__ name, *args, &block
249
+ self
250
+ end
251
+
252
+ def respond_to_missing?(method_name, include_private = false)
253
+ @options.respond_to?(name) || super
254
+ end
255
+
256
+ # Converts the search definition to a Hash
257
+ #
258
+ # @return [Hash]
259
+ #
260
+ def to_hash
261
+ hash = {}
262
+ hash.update(query: @query.to_hash) if @query
263
+ hash.update(filter: @filter.to_hash) if @filter
264
+ hash.update(post_filter: @post_filter.to_hash) if @post_filter
265
+ if @aggregations
266
+ hash.update(aggregations: @aggregations.reduce({}) do |sum, item|
267
+ sum.update item.first => item.last.to_hash
268
+ end)
269
+ end
270
+ hash.update(sort: @sort.to_hash) if @sort
271
+ hash.update(size: @size) if @size
272
+ hash.update(stored_fields: @stored_fields) if @stored_fields
273
+ hash.update(from: @from) if @from
274
+ hash.update(suggest: @suggest.reduce({}) { |sum, item| sum.update item.last.to_hash }) if @suggest
275
+ hash.update(highlight: @highlight.to_hash) if @highlight
276
+ hash.update(@options) unless @options.empty?
277
+ hash
278
+ end
279
+ end
280
+ end
281
+ end
282
+ end
@@ -0,0 +1,49 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ module OpenSearch
28
+ module DSL
29
+ # Generic utility methods
30
+ #
31
+ module Utils
32
+ # Camelize an underscored string
33
+ #
34
+ # A lightweight version of ActiveSupport's `camelize`
35
+ #
36
+ # @example
37
+ # __camelize('query_string')
38
+ # # => 'QueryString'
39
+ #
40
+ # @api private
41
+ #
42
+ def __camelize(string)
43
+ string.to_s.split('_').map(&:capitalize).join
44
+ end
45
+
46
+ extend self
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,69 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ #
3
+ # The OpenSearch Contributors require contributions made to
4
+ # this file be licensed under the Apache-2.0 license or a
5
+ # compatible open source license.
6
+ #
7
+ # Modifications Copyright OpenSearch Contributors. See
8
+ # GitHub history for details.
9
+ #
10
+ # Licensed to Elasticsearch B.V. under one or more contributor
11
+ # license agreements. See the NOTICE file distributed with
12
+ # this work for additional information regarding copyright
13
+ # ownership. Elasticsearch B.V. licenses this file to you under
14
+ # the Apache License, Version 2.0 (the "License"); you may
15
+ # not use this file except in compliance with the License.
16
+ # You may obtain a copy of the License at
17
+ #
18
+ # http://www.apache.org/licenses/LICENSE-2.0
19
+ #
20
+ # Unless required by applicable law or agreed to in writing,
21
+ # software distributed under the License is distributed on an
22
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
23
+ # KIND, either express or implied. See the License for the
24
+ # specific language governing permissions and limitations
25
+ # under the License.
26
+
27
+ require 'opensearch/dsl/utils'
28
+ require 'opensearch/dsl/search/base_component'
29
+ require 'opensearch/dsl/search/base_compound_filter_component'
30
+ require 'opensearch/dsl/search/base_aggregation_component'
31
+ require 'opensearch/dsl/search/query'
32
+ require 'opensearch/dsl/search/filter'
33
+ require 'opensearch/dsl/search/aggregation'
34
+ require 'opensearch/dsl/search/highlight'
35
+ require 'opensearch/dsl/search/sort'
36
+ require 'opensearch/dsl/search/options'
37
+ require 'opensearch/dsl/search/suggest'
38
+
39
+ Dir[File.expand_path('dsl/search/queries/**/*.rb', __dir__)].sort.each { |f| require f }
40
+ Dir[File.expand_path('dsl/search/filters/**/*.rb', __dir__)].sort.each { |f| require f }
41
+ Dir[File.expand_path('dsl/search/aggregations/**/*.rb', __dir__)].sort.each { |f| require f }
42
+
43
+ require 'opensearch/dsl/search'
44
+
45
+ module OpenSearch
46
+ # The main module, which can be included into your own class or namespace,
47
+ # to provide the DSL methods.
48
+ #
49
+ # @example
50
+ #
51
+ # include OpenSearch::DSL
52
+ #
53
+ # definition = search do
54
+ # query do
55
+ # match title: 'test'
56
+ # end
57
+ # end
58
+ #
59
+ # definition.to_hash
60
+ # # => { query: { match: { title: "test"} } }
61
+ #
62
+ # @see Search
63
+ #
64
+ module DSL
65
+ def self.included(base)
66
+ base.__send__ :include, OpenSearch::DSL::Search
67
+ end
68
+ end
69
+ end