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,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
+ module Queries
31
+ # A query which returns documents matching a multi-term query as a span query
32
+ #
33
+ # @example
34
+ #
35
+ # search do
36
+ # query do
37
+ # span_multi match: { prefix: { name: 'jo' } }
38
+ # end
39
+ # end
40
+ #
41
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-span-multi-term-query.html
42
+ # @see https://lucene.apache.org/core/5_0_0/core/org/apache/lucene/search/spans/package-summary.html
43
+ #
44
+ class SpanMulti
45
+ include BaseComponent
46
+
47
+ option_method :match
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,56 @@
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
+ module Queries
31
+ # A query which returns documents matching spans near each other
32
+ #
33
+ # @example
34
+ #
35
+ # search do
36
+ # query do
37
+ # span_near clauses: [ { span_term: { title: 'disaster' } }, { span_term: { title: 'health' } } ],
38
+ # slop: 10
39
+ # end
40
+ # end
41
+ #
42
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-span-near-query.html
43
+ # @see https://lucene.apache.org/core/5_0_0/core/org/apache/lucene/search/spans/package-summary.html
44
+ #
45
+ class SpanNear
46
+ include BaseComponent
47
+
48
+ option_method :span_near
49
+ option_method :slop
50
+ option_method :in_order
51
+ option_method :collect_payloads
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,57 @@
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
+ module Queries
31
+ # A query which discards matching documents which overlap with another query
32
+ #
33
+ # @example
34
+ #
35
+ # search do
36
+ # query do
37
+ # span_not include: { span_term: { title: 'disaster' } },
38
+ # exclude: { span_term: { title: 'health' } }
39
+ # end
40
+ # end
41
+ #
42
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-span-not-query.html
43
+ # @see https://lucene.apache.org/core/5_0_0/core/org/apache/lucene/search/spans/package-summary.html
44
+ #
45
+ class SpanNot
46
+ include BaseComponent
47
+
48
+ option_method :include
49
+ option_method :exclude
50
+ option_method :pre
51
+ option_method :post
52
+ option_method :dist
53
+ end
54
+ end
55
+ end
56
+ end
57
+ 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
+ module Queries
31
+ # A query which returns documents matching the union of provided queries
32
+ #
33
+ # @example
34
+ #
35
+ # search do
36
+ # query do
37
+ # span_or clauses: [ { span_term: { title: 'disaster' } }, { span_term: { title: 'health' } } ]
38
+ # end
39
+ # end
40
+ #
41
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-span-or-query.html
42
+ # @see https://lucene.apache.org/core/5_0_0/core/org/apache/lucene/search/spans/package-summary.html
43
+ #
44
+ class SpanOr
45
+ include BaseComponent
46
+
47
+ option_method :clauses
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,50 @@
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
+ module Queries
31
+ # A query which returns documents having a span containing a term
32
+ #
33
+ # @example
34
+ #
35
+ # search do
36
+ # query do
37
+ # span_term title: 'disaster'
38
+ # end
39
+ # end
40
+ #
41
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-span-term-query.html
42
+ # @see https://lucene.apache.org/core/5_0_0/core/org/apache/lucene/search/spans/package-summary.html
43
+ #
44
+ class SpanTerm
45
+ include BaseComponent
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,55 @@
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
+ module Queries
31
+ # A query which allows to use Mustache templates for query definitions
32
+ #
33
+ # @example
34
+ #
35
+ # search do
36
+ # query do
37
+ # template do
38
+ # query match: { content: '{query_string}' }
39
+ # params query_string: 'twitter'
40
+ # end
41
+ # end
42
+ # end
43
+ #
44
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-template-query.html
45
+ #
46
+ class Template
47
+ include BaseComponent
48
+
49
+ option_method :query
50
+ option_method :params
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,50 @@
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
+ module Queries
31
+ # A query which returns documents matching the specified term
32
+ #
33
+ # @note The specified term is *not analyzed* (lowercased, stemmed, etc)
34
+ #
35
+ # @example
36
+ #
37
+ # search do
38
+ # query do
39
+ # term category: 'Opinion'
40
+ # end
41
+ # end
42
+ #
43
+ #
44
+ class Term
45
+ include BaseComponent
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,51 @@
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
+ module Queries
31
+ # A query which returns documents matching the specified terms
32
+ #
33
+ # @note The specified terms are *not analyzed* (lowercased, stemmed, etc)
34
+ #
35
+ # @example
36
+ #
37
+ # search do
38
+ # query do
39
+ # terms categories: ['World', 'Opinion']
40
+ # end
41
+ # end
42
+ #
43
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-common-terms-query.html
44
+ #
45
+ class Terms
46
+ include BaseComponent
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,82 @@
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
+ module Queries
31
+ # A filter which returns parent documents for children documents matching a query
32
+ #
33
+ # @example Return articles with comments mentioning 'twitter', summing the score
34
+ #
35
+ # search do
36
+ # query do
37
+ # top_children do
38
+ # type 'comment'
39
+ # query match: { body: 'twitter' }
40
+ # score 'sum'
41
+ # end
42
+ # end
43
+ # end
44
+ #
45
+ #
46
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-top-children-query.html
47
+ #
48
+ class TopChildren
49
+ include BaseComponent
50
+
51
+ option_method :type
52
+ option_method :score
53
+ option_method :factor
54
+ option_method :incremental_factor
55
+ option_method :_scope
56
+
57
+ # DSL method for building the `query` part of the query definition
58
+ #
59
+ # @return [self]
60
+ #
61
+ def query(*args, &block)
62
+ @query = block ? @query = Query.new(*args, &block) : args.first
63
+ self
64
+ end
65
+
66
+ # Converts the query definition to a Hash
67
+ #
68
+ # @return [Hash]
69
+ #
70
+ def to_hash
71
+ hash = super
72
+ if @query
73
+ _query = @query.respond_to?(:to_hash) ? @query.to_hash : @query
74
+ hash[name].update(query: _query)
75
+ end
76
+ hash
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,54 @@
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
+ module Queries
31
+ # A query which returns documents matching a wildcard expression
32
+ #
33
+ # @note The expression is *not analyzed* (lowercased, stemmed, etc)
34
+ #
35
+ # @example
36
+ #
37
+ # search do
38
+ # query do
39
+ # wildcard title: 'tw*'
40
+ # end
41
+ # end
42
+ #
43
+ # @see http://opensearch.org/guide/en/opensearch/reference/current/query-dsl-wildcard-query.html
44
+ #
45
+ class Wildcard
46
+ include BaseComponent
47
+
48
+ option_method :value
49
+ option_method :boost
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,82 @@
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
+ # Contains the classes for OpenSearch queries
31
+ #
32
+ module Queries; end
33
+
34
+ # Wraps the `query` part of a search definition
35
+ #
36
+ #
37
+ class Query
38
+ def initialize(*_args, &block)
39
+ @block = block
40
+ end
41
+
42
+ # Looks up the corresponding class for a method being invoked, and initializes it
43
+ #
44
+ # @raise [NoMethodError] When the corresponding class cannot be found
45
+ #
46
+ def method_missing(name, *args, &block)
47
+ klass = Utils.__camelize(name)
48
+ raise NoMethodError, "undefined method '#{name}' for #{self}" unless Queries.const_defined? klass
49
+ @value = Queries.const_get(klass).new(*args, &block)
50
+ end
51
+
52
+ def respond_to_missing?(method_name, include_private = false)
53
+ Queries.const_defined?(Utils.__camelize(method_name)) || super
54
+ end
55
+
56
+ # Evaluates any block passed to the query
57
+ #
58
+ # @return [self]
59
+ #
60
+ def call
61
+ if @block
62
+ @block.arity < 1 ? instance_eval(&@block) : @block.call(self)
63
+ end
64
+ self
65
+ end
66
+
67
+ # Converts the query definition to a Hash
68
+ #
69
+ # @return [Hash]
70
+ #
71
+ def to_hash(_options = {})
72
+ call
73
+ if @value
74
+ @value.to_hash
75
+ else
76
+ {}
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end