opensearch-ruby 2.0.3 → 3.4.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +80 -46
- data/USER_GUIDE.md +149 -0
- data/bin/opensearch_ruby_console +4 -34
- data/lib/opensearch/api/actions/abort_benchmark.rb +49 -0
- data/lib/opensearch/api/actions/benchmark.rb +88 -0
- data/lib/opensearch/api/actions/bulk.rb +91 -0
- data/lib/opensearch/api/actions/cat/aliases.rb +79 -0
- data/lib/opensearch/api/actions/cat/all_pit_segments.rb +45 -0
- data/lib/opensearch/api/actions/cat/allocation.rb +83 -0
- data/lib/opensearch/api/actions/cat/cluster_manager.rb +54 -0
- data/lib/opensearch/api/actions/cat/count.rb +75 -0
- data/lib/opensearch/api/actions/cat/fielddata.rb +77 -0
- data/lib/opensearch/api/actions/cat/health.rb +72 -0
- data/lib/opensearch/api/actions/cat/help.rb +61 -0
- data/lib/opensearch/api/actions/cat/indices.rb +93 -0
- data/lib/opensearch/api/actions/cat/master.rb +73 -0
- data/lib/opensearch/api/actions/cat/nodeattrs.rb +73 -0
- data/lib/opensearch/api/actions/cat/nodes.rb +82 -0
- data/lib/opensearch/api/actions/cat/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/cat/pending_tasks.rb +76 -0
- data/lib/opensearch/api/actions/cat/pit_segments.rb +48 -0
- data/lib/opensearch/api/actions/cat/plugins.rb +75 -0
- data/lib/opensearch/api/actions/cat/recovery.rb +84 -0
- data/lib/opensearch/api/actions/cat/repositories.rb +73 -0
- data/lib/opensearch/api/actions/cat/segments.rb +76 -0
- data/lib/opensearch/api/actions/cat/shards.rb +85 -0
- data/lib/opensearch/api/actions/cat/snapshots.rb +82 -0
- data/lib/opensearch/api/actions/cat/tasks.rb +77 -0
- data/lib/opensearch/api/actions/cat/templates.rb +80 -0
- data/lib/opensearch/api/actions/cat/thread_pool.rb +84 -0
- data/lib/opensearch/api/actions/clear_scroll.rb +62 -0
- data/lib/opensearch/api/actions/cluster/allocation_explain.rb +67 -0
- data/lib/opensearch/api/actions/cluster/delete_component_template.rb +68 -0
- data/lib/opensearch/api/actions/cluster/delete_voting_config_exclusions.rb +59 -0
- data/lib/opensearch/api/actions/cluster/exists_component_template.rb +70 -0
- data/lib/opensearch/api/actions/cluster/get_component_template.rb +70 -0
- data/lib/opensearch/api/actions/cluster/get_settings.rb +67 -0
- data/lib/opensearch/api/actions/cluster/health.rb +88 -0
- data/lib/opensearch/api/actions/cluster/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/cluster/pending_tasks.rb +64 -0
- data/lib/opensearch/api/actions/cluster/post_voting_config_exclusions.rb +63 -0
- data/lib/opensearch/api/actions/cluster/put_component_template.rb +72 -0
- data/lib/opensearch/api/actions/cluster/put_settings.rb +68 -0
- data/{spec/unit/wrapper_gem_spec.rb → lib/opensearch/api/actions/cluster/remote_info.rb} +20 -17
- data/lib/opensearch/api/actions/cluster/reroute.rb +72 -0
- data/lib/opensearch/api/actions/cluster/state.rb +87 -0
- data/lib/opensearch/api/actions/cluster/stats.rb +68 -0
- data/lib/opensearch/api/actions/count.rb +96 -0
- data/lib/opensearch/api/actions/create.rb +60 -0
- data/lib/opensearch/api/actions/create_pit.rb +45 -0
- data/lib/opensearch/api/actions/dangling_indices/delete_dangling_index.rb +70 -0
- data/lib/opensearch/api/actions/dangling_indices/import_dangling_index.rb +69 -0
- data/lib/opensearch/api/actions/dangling_indices/list_dangling_indices.rb +51 -0
- data/lib/opensearch/api/actions/dangling_indices/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/delete.rb +89 -0
- data/lib/opensearch/api/actions/delete_all_pits.rb +26 -0
- data/lib/opensearch/api/actions/delete_by_query.rb +133 -0
- data/lib/opensearch/api/actions/delete_by_query_rethrottle.rb +62 -0
- data/lib/opensearch/api/actions/delete_pit.rb +30 -0
- data/lib/opensearch/api/actions/delete_script.rb +66 -0
- data/lib/opensearch/api/actions/exists.rb +94 -0
- data/lib/opensearch/api/actions/exists_source.rb +89 -0
- data/lib/opensearch/api/actions/explain.rb +99 -0
- data/lib/opensearch/api/actions/features/get_features.rb +61 -0
- data/lib/opensearch/api/actions/features/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/features/reset_features.rb +55 -0
- data/lib/opensearch/api/actions/field_caps.rb +78 -0
- data/lib/opensearch/api/actions/get.rb +93 -0
- data/lib/opensearch/api/actions/get_all_pits.rb +26 -0
- data/lib/opensearch/api/actions/get_script.rb +64 -0
- data/lib/opensearch/api/actions/get_script_context.rb +53 -0
- data/lib/opensearch/api/actions/get_script_languages.rb +53 -0
- data/lib/opensearch/api/actions/get_source.rb +87 -0
- data/lib/opensearch/api/actions/http/connect.rb +28 -0
- data/lib/opensearch/api/actions/http/delete.rb +28 -0
- data/lib/opensearch/api/actions/http/get.rb +28 -0
- data/lib/opensearch/api/actions/http/head.rb +28 -0
- data/lib/opensearch/api/actions/http/options.rb +28 -0
- data/lib/opensearch/api/actions/http/patch.rb +28 -0
- data/lib/opensearch/api/actions/http/post.rb +28 -0
- data/lib/opensearch/api/actions/http/put.rb +28 -0
- data/lib/opensearch/api/actions/http/request.rb +27 -0
- data/lib/opensearch/api/actions/http/trace.rb +28 -0
- data/lib/opensearch/api/actions/index.rb +96 -0
- data/lib/opensearch/api/actions/indices/add_block.rb +78 -0
- data/lib/opensearch/api/actions/indices/analyze.rb +71 -0
- data/lib/opensearch/api/actions/indices/clear_cache.rb +79 -0
- data/lib/opensearch/api/actions/indices/clone.rb +75 -0
- data/lib/opensearch/api/actions/indices/close.rb +76 -0
- data/lib/opensearch/api/actions/indices/create.rb +71 -0
- data/lib/opensearch/api/actions/indices/delete.rb +78 -0
- data/lib/opensearch/api/actions/indices/delete_alias.rb +72 -0
- data/lib/opensearch/api/actions/indices/delete_index_template.rb +68 -0
- data/lib/opensearch/api/actions/indices/delete_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/disk_usage.rb +76 -0
- data/lib/opensearch/api/actions/indices/exists.rb +79 -0
- data/lib/opensearch/api/actions/indices/exists_alias.rb +82 -0
- data/lib/opensearch/api/actions/indices/exists_index_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/exists_template.rb +75 -0
- data/lib/opensearch/api/actions/indices/field_usage_stats.rb +74 -0
- data/lib/opensearch/api/actions/indices/flush.rb +74 -0
- data/lib/opensearch/api/actions/indices/forcemerge.rb +76 -0
- data/lib/opensearch/api/actions/indices/get.rb +78 -0
- data/lib/opensearch/api/actions/indices/get_alias.rb +79 -0
- data/lib/opensearch/api/actions/indices/get_field_mapping.rb +83 -0
- data/lib/opensearch/api/actions/indices/get_index_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/get_mapping.rb +81 -0
- data/lib/opensearch/api/actions/indices/get_settings.rb +87 -0
- data/lib/opensearch/api/actions/indices/get_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/get_upgrade.rb +75 -0
- data/lib/opensearch/api/actions/indices/open.rb +76 -0
- data/lib/opensearch/api/actions/indices/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/indices/put_alias.rb +73 -0
- data/lib/opensearch/api/actions/indices/put_index_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/put_mapping.rb +82 -0
- data/lib/opensearch/api/actions/indices/put_settings.rb +83 -0
- data/lib/opensearch/api/actions/indices/put_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/recovery.rb +68 -0
- data/lib/opensearch/api/actions/indices/refresh.rb +70 -0
- data/lib/opensearch/api/actions/indices/resolve_index.rb +68 -0
- data/lib/opensearch/api/actions/indices/rollover.rb +81 -0
- data/lib/opensearch/api/actions/indices/segments.rb +72 -0
- data/lib/opensearch/api/actions/indices/shard_stores.rb +72 -0
- data/lib/opensearch/api/actions/indices/shrink.rb +77 -0
- data/lib/opensearch/api/actions/indices/simulate_index_template.rb +71 -0
- data/lib/opensearch/api/actions/indices/simulate_template.rb +73 -0
- data/lib/opensearch/api/actions/indices/split.rb +77 -0
- data/lib/opensearch/api/actions/indices/stats.rb +100 -0
- data/lib/opensearch/api/actions/indices/update_aliases.rb +66 -0
- data/lib/opensearch/api/actions/indices/upgrade.rb +79 -0
- data/lib/opensearch/api/actions/indices/validate_query.rb +99 -0
- data/{Gemfile → lib/opensearch/api/actions/info.rb} +19 -8
- data/lib/opensearch/api/actions/ingest/delete_pipeline.rb +68 -0
- data/lib/opensearch/api/actions/ingest/geo_ip_stats.rb +51 -0
- data/lib/opensearch/api/actions/ingest/get_pipeline.rb +70 -0
- data/lib/opensearch/api/actions/ingest/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/ingest/processor_grok.rb +51 -0
- data/lib/opensearch/api/actions/ingest/put_pipeline.rb +70 -0
- data/lib/opensearch/api/actions/ingest/simulate.rb +69 -0
- data/lib/opensearch/api/actions/mget.rb +86 -0
- data/lib/opensearch/api/actions/msearch.rb +105 -0
- data/lib/opensearch/api/actions/msearch_template.rb +89 -0
- data/lib/opensearch/api/actions/mtermvectors.rb +102 -0
- data/lib/opensearch/api/actions/nodes/hot_threads.rb +81 -0
- data/lib/opensearch/api/actions/nodes/info.rb +75 -0
- data/lib/opensearch/api/actions/nodes/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/nodes/reload_secure_settings.rb +67 -0
- data/lib/opensearch/api/actions/nodes/shutdown.rb +65 -0
- data/lib/opensearch/api/actions/nodes/stats.rb +96 -0
- data/lib/opensearch/api/actions/nodes/usage.rb +73 -0
- data/lib/opensearch/api/actions/params_registry.rb +67 -0
- data/lib/opensearch/api/actions/ping.rb +54 -0
- data/lib/opensearch/api/actions/put_script.rb +76 -0
- data/lib/opensearch/api/actions/rank_eval.rb +77 -0
- data/lib/opensearch/api/actions/reindex.rb +76 -0
- data/lib/opensearch/api/actions/reindex_rethrottle.rb +62 -0
- data/{spec/integration/security_disabled/validation_integration_spec.rb → lib/opensearch/api/actions/remote/info.rb} +17 -11
- data/lib/opensearch/api/actions/remote_store/restore.rb +43 -0
- data/lib/opensearch/api/actions/render_search_template.rb +62 -0
- data/lib/opensearch/api/actions/scripts_painless_execute.rb +59 -0
- data/lib/opensearch/api/actions/scroll.rb +78 -0
- data/lib/opensearch/api/actions/search.rb +161 -0
- data/lib/opensearch/api/actions/search_shards.rb +74 -0
- data/lib/opensearch/api/actions/search_template.rb +96 -0
- data/lib/opensearch/api/actions/security/change_password.rb +39 -0
- data/lib/opensearch/api/actions/security/create_action_group.rb +42 -0
- data/lib/opensearch/api/actions/security/create_role.rb +43 -0
- data/lib/opensearch/api/actions/security/create_role_mapping.rb +43 -0
- data/lib/opensearch/api/actions/security/create_tenant.rb +42 -0
- data/lib/opensearch/api/actions/security/create_user.rb +43 -0
- data/lib/opensearch/api/actions/security/delete_action_group.rb +41 -0
- data/lib/opensearch/api/actions/security/delete_distinguished_names.rb +41 -0
- data/lib/opensearch/api/actions/security/delete_role.rb +41 -0
- data/lib/opensearch/api/actions/security/delete_role_mapping.rb +41 -0
- data/lib/opensearch/api/actions/security/delete_tenant.rb +41 -0
- data/lib/opensearch/api/actions/security/delete_user.rb +41 -0
- data/lib/opensearch/api/actions/security/flush_cache.rb +36 -0
- data/lib/opensearch/api/actions/security/get_account_details.rb +36 -0
- data/lib/opensearch/api/actions/security/get_action_group.rb +41 -0
- data/lib/opensearch/api/actions/security/get_action_groups.rb +36 -0
- data/lib/opensearch/api/actions/security/get_audit_configuration.rb +36 -0
- data/lib/opensearch/api/actions/security/get_certificates.rb +36 -0
- data/lib/opensearch/api/actions/security/get_configuration.rb +36 -0
- data/lib/opensearch/api/actions/security/get_distinguished_names.rb +39 -0
- data/lib/opensearch/api/actions/security/get_role.rb +41 -0
- data/lib/opensearch/api/actions/security/get_role_mapping.rb +41 -0
- data/lib/opensearch/api/actions/security/get_role_mappings.rb +36 -0
- data/lib/opensearch/api/actions/security/get_roles.rb +36 -0
- data/lib/opensearch/api/actions/security/get_tenant.rb +41 -0
- data/lib/opensearch/api/actions/security/get_tenants.rb +36 -0
- data/lib/opensearch/api/actions/security/get_user.rb +41 -0
- data/lib/opensearch/api/actions/security/get_users.rb +36 -0
- data/lib/opensearch/api/actions/security/health.rb +36 -0
- data/lib/opensearch/api/actions/security/patch_action_group.rb +42 -0
- data/lib/opensearch/api/actions/security/patch_action_groups.rb +37 -0
- data/lib/opensearch/api/actions/security/patch_audit_configuration.rb +39 -0
- data/lib/opensearch/api/actions/security/patch_configuration.rb +39 -0
- data/lib/opensearch/api/actions/security/patch_distinguished_names.rb +39 -0
- data/lib/opensearch/api/actions/security/patch_role.rb +43 -0
- data/lib/opensearch/api/actions/security/patch_role_mapping.rb +43 -0
- data/lib/opensearch/api/actions/security/patch_role_mappings.rb +39 -0
- data/lib/opensearch/api/actions/security/patch_roles.rb +39 -0
- data/lib/opensearch/api/actions/security/patch_tenant.rb +43 -0
- data/lib/opensearch/api/actions/security/patch_tenants.rb +39 -0
- data/lib/opensearch/api/actions/security/patch_user.rb +43 -0
- data/lib/opensearch/api/actions/security/patch_users.rb +39 -0
- data/lib/opensearch/api/actions/security/reload_http_certificates.rb +36 -0
- data/lib/opensearch/api/actions/security/reload_transport_certificates.rb +36 -0
- data/lib/opensearch/api/actions/security/update_audit_configuration.rb +39 -0
- data/lib/opensearch/api/actions/security/update_configuration.rb +39 -0
- data/lib/opensearch/api/actions/security/update_distinguished_names.rb +42 -0
- data/lib/opensearch/api/actions/shutdown/delete_node.rb +60 -0
- data/lib/opensearch/api/actions/shutdown/get_node.rb +62 -0
- data/lib/opensearch/api/actions/shutdown/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/shutdown/put_node.rb +62 -0
- data/lib/opensearch/api/actions/snapshot/cleanup_repository.rb +68 -0
- data/lib/opensearch/api/actions/snapshot/clone.rb +76 -0
- data/lib/opensearch/api/actions/snapshot/create.rb +73 -0
- data/lib/opensearch/api/actions/snapshot/create_repository.rb +72 -0
- data/lib/opensearch/api/actions/snapshot/delete.rb +74 -0
- data/lib/opensearch/api/actions/snapshot/delete_repository.rb +72 -0
- data/lib/opensearch/api/actions/snapshot/get.rb +82 -0
- data/lib/opensearch/api/actions/snapshot/get_features.rb +61 -0
- data/lib/opensearch/api/actions/snapshot/get_repository.rb +73 -0
- data/lib/opensearch/api/actions/snapshot/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/snapshot/repository_analyze.rb +84 -0
- data/lib/opensearch/api/actions/snapshot/restore.rb +73 -0
- data/lib/opensearch/api/actions/snapshot/status.rb +79 -0
- data/lib/opensearch/api/actions/snapshot/verify_repository.rb +68 -0
- data/lib/opensearch/api/actions/tasks/cancel.rb +76 -0
- data/lib/opensearch/api/actions/tasks/get.rb +68 -0
- data/lib/opensearch/api/actions/tasks/list.rb +75 -0
- data/lib/opensearch/api/actions/tasks/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/termvectors.rb +108 -0
- data/lib/opensearch/api/actions/update.rb +99 -0
- data/lib/opensearch/api/actions/update_by_query.rb +137 -0
- data/lib/opensearch/api/actions/update_by_query_rethrottle.rb +62 -0
- data/{spec/integration/security_enabled/validation_integration_spec.rb → lib/opensearch/api/namespace/cat.rb} +19 -12
- data/lib/opensearch/api/namespace/cluster.rb +47 -0
- data/lib/opensearch/api/namespace/common.rb +72 -0
- data/lib/opensearch/api/namespace/dangling_indices.rb +47 -0
- data/lib/opensearch/api/namespace/features.rb +47 -0
- data/lib/opensearch/api/namespace/http.rb +30 -0
- data/lib/opensearch/api/namespace/indices.rb +47 -0
- data/lib/opensearch/api/namespace/ingest.rb +47 -0
- data/lib/opensearch/api/namespace/nodes.rb +47 -0
- data/lib/opensearch/api/namespace/remote.rb +47 -0
- data/lib/opensearch/api/namespace/remote_store.rb +30 -0
- data/lib/opensearch/api/namespace/security.rb +30 -0
- data/lib/opensearch/api/namespace/shutdown.rb +47 -0
- data/lib/opensearch/api/namespace/snapshot.rb +47 -0
- data/lib/opensearch/api/namespace/tasks.rb +47 -0
- data/lib/opensearch/api/utils.rb +296 -0
- data/lib/opensearch/api.rb +104 -0
- data/lib/opensearch/dsl/search/aggregation.rb +112 -0
- data/lib/opensearch/dsl/search/aggregations/avg.rb +49 -0
- data/lib/opensearch/dsl/search/aggregations/cardinality.rb +56 -0
- data/lib/opensearch/dsl/search/aggregations/children.rb +63 -0
- data/lib/opensearch/dsl/search/aggregations/composite.rb +68 -0
- data/lib/opensearch/dsl/search/aggregations/date_histogram.rb +64 -0
- data/lib/opensearch/dsl/search/aggregations/date_range.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/extended_stats.rb +48 -0
- data/lib/opensearch/dsl/search/aggregations/filter.rb +54 -0
- data/lib/opensearch/dsl/search/aggregations/filters.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/geo_bounds.rb +68 -0
- data/lib/opensearch/dsl/search/aggregations/geo_distance.rb +63 -0
- data/lib/opensearch/dsl/search/aggregations/geohash_grid.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/global.rb +52 -0
- data/{spec/integration/security_disabled/client_integration_spec.rb → lib/opensearch/dsl/search/aggregations/histogram.rb} +29 -29
- data/lib/opensearch/dsl/search/aggregations/ip_range.rb +55 -0
- data/lib/opensearch/dsl/search/aggregations/max.rb +49 -0
- data/lib/opensearch/dsl/search/aggregations/min.rb +49 -0
- data/lib/opensearch/dsl/search/aggregations/missing.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/nested.rb +57 -0
- data/lib/opensearch/dsl/search/aggregations/percentile_ranks.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/percentiles.rb +57 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/avg_bucket.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_script.rb +60 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_selector.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/bucket_sort.rb +111 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/cumulative_sum.rb +57 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/derivative.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/extended_stats_bucket.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/max_bucket.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/min_bucket.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/moving_avg.rb +66 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/percentiles_bucket.rb +60 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/serial_diff.rb +60 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/stats_bucket.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/pipeline/sum_bucket.rb +58 -0
- data/lib/opensearch/dsl/search/aggregations/range.rb +77 -0
- data/lib/opensearch/dsl/search/aggregations/reverse_nested.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/scripted_metric.rb +63 -0
- data/lib/opensearch/dsl/search/aggregations/significant_terms.rb +69 -0
- data/lib/opensearch/dsl/search/aggregations/stats.rb +61 -0
- data/lib/opensearch/dsl/search/aggregations/sum.rb +49 -0
- data/lib/opensearch/dsl/search/aggregations/terms.rb +66 -0
- data/lib/opensearch/dsl/search/aggregations/top_hits.rb +59 -0
- data/lib/opensearch/dsl/search/aggregations/value_count.rb +49 -0
- data/lib/opensearch/dsl/search/base_aggregation_component.rb +83 -0
- data/lib/opensearch/dsl/search/base_component.rb +191 -0
- data/lib/opensearch/dsl/search/base_compound_filter_component.rb +124 -0
- data/lib/opensearch/dsl/search/filter.rb +82 -0
- data/lib/opensearch/dsl/search/filters/and.rb +70 -0
- data/lib/opensearch/dsl/search/filters/bool.rb +103 -0
- data/lib/opensearch/dsl/search/filters/exists.rb +56 -0
- data/lib/opensearch/dsl/search/filters/geo_bounding_box.rb +69 -0
- data/lib/opensearch/dsl/search/filters/geo_distance.rb +81 -0
- data/lib/opensearch/dsl/search/filters/geo_distance_range.rb +56 -0
- data/lib/opensearch/dsl/search/filters/geo_polygon.rb +65 -0
- data/lib/opensearch/dsl/search/filters/geo_shape.rb +59 -0
- data/lib/opensearch/dsl/search/filters/geohash_cell.rb +71 -0
- data/lib/opensearch/dsl/search/filters/has_child.rb +98 -0
- data/lib/opensearch/dsl/search/filters/has_parent.rb +97 -0
- data/lib/opensearch/dsl/search/filters/ids.rb +56 -0
- data/lib/opensearch/dsl/search/filters/indices.rb +101 -0
- data/lib/opensearch/dsl/search/filters/limit.rb +55 -0
- data/lib/opensearch/dsl/search/filters/match_all.rb +52 -0
- data/lib/opensearch/dsl/search/filters/missing.rb +58 -0
- data/lib/opensearch/dsl/search/filters/nested.rb +91 -0
- data/lib/opensearch/dsl/search/filters/not.rb +98 -0
- data/lib/opensearch/dsl/search/filters/or.rb +70 -0
- data/lib/opensearch/dsl/search/filters/prefix.rb +53 -0
- data/lib/opensearch/dsl/search/filters/query.rb +77 -0
- data/lib/opensearch/dsl/search/filters/range.rb +63 -0
- data/lib/opensearch/dsl/search/filters/regexp.rb +58 -0
- data/lib/opensearch/dsl/search/filters/script.rb +56 -0
- data/lib/opensearch/dsl/search/filters/term.rb +55 -0
- data/lib/opensearch/dsl/search/filters/terms.rb +56 -0
- data/lib/opensearch/dsl/search/filters/type.rb +58 -0
- data/lib/opensearch/dsl/search/highlight.rb +117 -0
- data/lib/opensearch/dsl/search/options.rb +80 -0
- data/lib/opensearch/dsl/search/queries/bool.rb +110 -0
- data/lib/opensearch/dsl/search/queries/boosting.rb +57 -0
- data/lib/opensearch/dsl/search/queries/common.rb +62 -0
- data/lib/opensearch/dsl/search/queries/constant_score.rb +90 -0
- data/lib/opensearch/dsl/search/queries/dis_max.rb +59 -0
- data/lib/opensearch/dsl/search/queries/exists.rb +68 -0
- data/lib/opensearch/dsl/search/queries/filtered.rb +101 -0
- data/lib/opensearch/dsl/search/queries/function_score.rb +122 -0
- data/lib/opensearch/dsl/search/queries/fuzzy.rb +69 -0
- data/lib/opensearch/dsl/search/queries/fuzzy_like_this.rb +61 -0
- data/lib/opensearch/dsl/search/queries/fuzzy_like_this_field.rb +60 -0
- data/lib/opensearch/dsl/search/queries/geo_shape.rb +54 -0
- data/lib/opensearch/dsl/search/queries/has_child.rb +82 -0
- data/lib/opensearch/dsl/search/queries/has_parent.rb +82 -0
- data/lib/opensearch/dsl/search/queries/ids.rb +52 -0
- data/lib/opensearch/dsl/search/queries/indices.rb +58 -0
- data/lib/opensearch/dsl/search/queries/match.rb +66 -0
- data/lib/opensearch/dsl/search/queries/match_all.rb +50 -0
- data/lib/opensearch/dsl/search/queries/match_phrase.rb +56 -0
- data/lib/opensearch/dsl/search/queries/match_phrase_prefix.rb +55 -0
- data/lib/opensearch/dsl/search/queries/more_like_this.rb +88 -0
- data/lib/opensearch/dsl/search/queries/multi_match.rb +69 -0
- data/lib/opensearch/dsl/search/queries/nested.rb +80 -0
- data/lib/opensearch/dsl/search/queries/prefix.rb +54 -0
- data/lib/opensearch/dsl/search/queries/query_string.rb +75 -0
- data/lib/opensearch/dsl/search/queries/range.rb +71 -0
- data/lib/opensearch/dsl/search/queries/regexp.rb +55 -0
- data/lib/opensearch/dsl/search/queries/script_score.rb +62 -0
- data/lib/opensearch/dsl/search/queries/simple_query_string.rb +64 -0
- data/lib/opensearch/dsl/search/queries/span_first.rb +52 -0
- data/lib/opensearch/dsl/search/queries/span_multi.rb +52 -0
- data/lib/opensearch/dsl/search/queries/span_near.rb +56 -0
- data/lib/opensearch/dsl/search/queries/span_not.rb +57 -0
- data/lib/opensearch/dsl/search/queries/span_or.rb +52 -0
- data/lib/opensearch/dsl/search/queries/span_term.rb +50 -0
- data/lib/opensearch/dsl/search/queries/template.rb +55 -0
- data/lib/opensearch/dsl/search/queries/term.rb +50 -0
- data/lib/opensearch/dsl/search/queries/terms.rb +51 -0
- data/lib/opensearch/dsl/search/queries/top_children.rb +82 -0
- data/lib/opensearch/dsl/search/queries/wildcard.rb +54 -0
- data/lib/opensearch/dsl/search/query.rb +82 -0
- data/lib/opensearch/dsl/search/sort.rb +83 -0
- data/lib/opensearch/dsl/search/suggest.rb +52 -0
- data/lib/opensearch/dsl/search.rb +282 -0
- data/lib/opensearch/dsl/utils.rb +49 -0
- data/lib/opensearch/dsl.rb +69 -0
- data/lib/opensearch/transport/client.rb +362 -0
- data/lib/opensearch/transport/redacted.rb +82 -0
- data/lib/opensearch/transport/transport/base.rb +451 -0
- data/lib/opensearch/transport/transport/connections/collection.rb +134 -0
- data/lib/opensearch/transport/transport/connections/connection.rb +168 -0
- data/lib/opensearch/transport/transport/connections/selector.rb +100 -0
- data/lib/opensearch/transport/transport/errors.rb +97 -0
- data/lib/opensearch/transport/transport/http/curb.rb +139 -0
- data/lib/opensearch/transport/transport/http/faraday.rb +101 -0
- data/lib/opensearch/transport/transport/http/manticore.rb +188 -0
- data/lib/opensearch/transport/transport/loggable.rb +92 -0
- data/lib/opensearch/transport/transport/response.rb +47 -0
- data/lib/opensearch/transport/transport/serializer/multi_json.rb +61 -0
- data/lib/opensearch/transport/transport/sniffer.rb +110 -0
- data/lib/opensearch/transport.rb +44 -0
- data/lib/opensearch/version.rb +1 -1
- data/lib/opensearch-dsl.rb +27 -0
- data/lib/opensearch.rb +12 -12
- data/opensearch-ruby.gemspec +69 -0
- data/spec/spec_helper.rb +95 -4
- data/test/dsl/integration/search_aggregation_children_test.rb +91 -0
- data/test/dsl/integration/search_aggregation_geo_test.rb +112 -0
- data/test/dsl/integration/search_aggregation_nested_test.rb +129 -0
- data/test/dsl/integration/search_aggregations_test.rb +288 -0
- data/test/dsl/integration/search_filters_test.rb +290 -0
- data/test/dsl/integration/search_options_test.rb +54 -0
- data/test/dsl/integration/search_query_test.rb +98 -0
- data/test/dsl/integration/search_size_from_test.rb +71 -0
- data/test/dsl/integration/search_sort_test.rb +57 -0
- data/test/dsl/integration/search_suggest_test.rb +107 -0
- data/test/dsl/integration/search_test.rb +81 -0
- data/test/dsl/test_helper.rb +95 -0
- data/test/dsl/unit/dsl_test.rb +44 -0
- data/test/dsl/unit/search_aggregation_test.rb +96 -0
- data/test/dsl/unit/search_base_aggregation_component_test.rb +66 -0
- data/test/dsl/unit/search_base_component_test.rb +210 -0
- data/test/dsl/unit/search_filter_test.rb +84 -0
- data/test/dsl/unit/search_highlight_test.rb +103 -0
- data/test/dsl/unit/search_options_test.rb +114 -0
- data/test/dsl/unit/search_query_test.rb +88 -0
- data/test/dsl/unit/search_size_from_test.rb +68 -0
- data/test/dsl/unit/search_sort_test.rb +91 -0
- data/test/dsl/unit/search_suggest_test.rb +46 -0
- data/test/dsl/unit/search_test.rb +268 -0
- data/test/dsl/unit/utils_test.rb +47 -0
- data/test/transport/integration/transport_test.rb +117 -0
- data/test/transport/profile/client_benchmark_test.rb +141 -0
- data/test/transport/test_helper.rb +97 -0
- data/test/transport/unit/connection_test.rb +145 -0
- data/test/transport/unit/response_test.rb +46 -0
- data/test/transport/unit/serializer_test.rb +42 -0
- data/test/transport/unit/transport_base_test.rb +673 -0
- data/test/transport/unit/transport_curb_test.rb +143 -0
- data/test/transport/unit/transport_faraday_test.rb +237 -0
- data/test/transport/unit/transport_manticore_test.rb +191 -0
- data.tar.gz.sig +0 -0
- metadata +502 -191
- metadata.gz.sig +0 -0
- data/.gitignore +0 -21
- data/Rakefile +0 -69
- data/opensearch.gemspec +0 -81
- data/spec/integration/security_enabled/client_integration_spec.rb +0 -43
- data/spec/unit/opensearch_product_validation_spec.rb +0 -198
- /data/{LICENSE → LICENSE.txt} +0 -0
@@ -0,0 +1,66 @@
|
|
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_relative '../test_helper'
|
28
|
+
|
29
|
+
module OpenSearch
|
30
|
+
module Test
|
31
|
+
class BaseAggregationComponentTest < ::OpenSearch::Test::UnitTestCase
|
32
|
+
context 'BaseAggregationComponent' do
|
33
|
+
class DummyAggregationComponent
|
34
|
+
include ::OpenSearch::DSL::Search::BaseAggregationComponent
|
35
|
+
end
|
36
|
+
|
37
|
+
class ::OpenSearch::DSL::Search::Aggregations::Dummy
|
38
|
+
include ::OpenSearch::DSL::Search::BaseAggregationComponent
|
39
|
+
end
|
40
|
+
|
41
|
+
subject { DummyAggregationComponent.new }
|
42
|
+
|
43
|
+
should 'return an instance of the aggregation by name' do
|
44
|
+
assert_instance_of ::OpenSearch::DSL::Search::Aggregations::Dummy, subject.dummy
|
45
|
+
end
|
46
|
+
|
47
|
+
should 'raise an exception when unknown aggregation is called' do
|
48
|
+
assert_raise(NoMethodError) { subject.foobar }
|
49
|
+
end
|
50
|
+
|
51
|
+
should 'add a nested aggregation' do
|
52
|
+
subject.aggregation :inner do
|
53
|
+
dummy field: 'foo'
|
54
|
+
end
|
55
|
+
|
56
|
+
assert !subject.aggregations.empty?, "#{subject.aggregations.inspect} is empty"
|
57
|
+
|
58
|
+
assert_instance_of OpenSearch::DSL::Search::Aggregation, subject.aggregations[:inner]
|
59
|
+
assert_equal({ dummy: { field: 'foo' } }, subject.aggregations[:inner].to_hash)
|
60
|
+
|
61
|
+
assert_equal 'foo', subject.to_hash[:aggregations][:inner][:dummy][:field]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,210 @@
|
|
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_relative '../test_helper'
|
28
|
+
|
29
|
+
module OpenSearch
|
30
|
+
module Test
|
31
|
+
class BaseComponentTest < ::OpenSearch::Test::UnitTestCase
|
32
|
+
context 'BaseComponent' do
|
33
|
+
class DummyComponent
|
34
|
+
include OpenSearch::DSL::Search::BaseComponent
|
35
|
+
end
|
36
|
+
|
37
|
+
class DummyComponentWithAName
|
38
|
+
include OpenSearch::DSL::Search::BaseComponent
|
39
|
+
name :foo
|
40
|
+
end
|
41
|
+
|
42
|
+
class DummyComponentWithNewName
|
43
|
+
include OpenSearch::DSL::Search::BaseComponent
|
44
|
+
end
|
45
|
+
|
46
|
+
class DummyCompoundFilter
|
47
|
+
include OpenSearch::DSL::Search::BaseCompoundFilterComponent
|
48
|
+
end
|
49
|
+
|
50
|
+
subject { DummyComponent.new :foo }
|
51
|
+
|
52
|
+
should 'have a name' do
|
53
|
+
assert_equal :dummy_component, DummyComponent.new.name
|
54
|
+
end
|
55
|
+
|
56
|
+
should 'have a custom name' do
|
57
|
+
assert_equal :foo, DummyComponentWithAName.new.name
|
58
|
+
end
|
59
|
+
|
60
|
+
should 'allow to set a name' do
|
61
|
+
DummyComponentWithNewName.name :foo
|
62
|
+
assert_equal :foo, DummyComponentWithNewName.new.name
|
63
|
+
assert_equal :foo, DummyComponentWithNewName.name
|
64
|
+
|
65
|
+
DummyComponentWithNewName.name = :bar
|
66
|
+
assert_equal :bar, DummyComponentWithNewName.name
|
67
|
+
assert_equal :bar, DummyComponentWithNewName.new.name
|
68
|
+
end
|
69
|
+
|
70
|
+
should 'initialize the hash' do
|
71
|
+
assert_instance_of Hash, subject.to_hash
|
72
|
+
end
|
73
|
+
|
74
|
+
should 'have an empty Hash as args by default' do
|
75
|
+
subject = DummyComponentWithNewName.new
|
76
|
+
assert_equal({}, subject.instance_variable_get(:@args))
|
77
|
+
end
|
78
|
+
|
79
|
+
should 'have an option method with args' do
|
80
|
+
class DummyComponentWithOptionMethod
|
81
|
+
include OpenSearch::DSL::Search::BaseComponent
|
82
|
+
option_method :bar
|
83
|
+
end
|
84
|
+
|
85
|
+
subject = DummyComponentWithOptionMethod.new :foo
|
86
|
+
assert_respond_to subject, :bar
|
87
|
+
|
88
|
+
subject.bar 'BAM'
|
89
|
+
assert_equal({ dummy_component_with_option_method: { foo: { bar: 'BAM' } } }, subject.to_hash)
|
90
|
+
end
|
91
|
+
|
92
|
+
should 'keep track of option methods' do
|
93
|
+
class DummyComponentWithCustomOptionMethod
|
94
|
+
include OpenSearch::DSL::Search::BaseComponent
|
95
|
+
option_method :foo
|
96
|
+
end
|
97
|
+
|
98
|
+
subject = DummyComponentWithCustomOptionMethod
|
99
|
+
assert_includes subject.option_methods, :foo
|
100
|
+
end
|
101
|
+
|
102
|
+
should 'have an option method without args' do
|
103
|
+
class DummyComponentWithOptionMethod
|
104
|
+
include OpenSearch::DSL::Search::BaseComponent
|
105
|
+
option_method :bar
|
106
|
+
end
|
107
|
+
|
108
|
+
subject = DummyComponentWithOptionMethod.new
|
109
|
+
assert_respond_to subject, :bar
|
110
|
+
|
111
|
+
subject.bar 'BAM'
|
112
|
+
assert_equal({ dummy_component_with_option_method: { bar: 'BAM' } }, subject.to_hash)
|
113
|
+
end
|
114
|
+
|
115
|
+
should 'define a custom option method' do
|
116
|
+
class DummyComponentWithCustomOptionMethod
|
117
|
+
include OpenSearch::DSL::Search::BaseComponent
|
118
|
+
option_method :bar, ->(*_args) { @hash = { foo: 'bar' } }
|
119
|
+
end
|
120
|
+
|
121
|
+
subject = DummyComponentWithCustomOptionMethod.new
|
122
|
+
subject.bar
|
123
|
+
|
124
|
+
assert_equal 'bar', subject.instance_variable_get(:@hash)[:foo]
|
125
|
+
end
|
126
|
+
|
127
|
+
should 'execute the passed block' do
|
128
|
+
subject = DummyComponent.new(:foo) { @foo = 'BAR' }
|
129
|
+
|
130
|
+
assert_respond_to subject, :call
|
131
|
+
assert_instance_of DummyComponent, subject.call
|
132
|
+
assert_equal 'BAR', subject.instance_variable_get(:@foo)
|
133
|
+
end
|
134
|
+
|
135
|
+
should 'respond to empty?' do
|
136
|
+
assert DummyComponent.new.empty?
|
137
|
+
assert DummyComponent.new(:foo).empty?
|
138
|
+
|
139
|
+
subject = DummyComponent.new(:foo) { @hash = { foo: 'bar' } }
|
140
|
+
assert !subject.empty?
|
141
|
+
end
|
142
|
+
|
143
|
+
context 'to_hash conversion' do
|
144
|
+
should 'build the hash with the block with args' do
|
145
|
+
subject = DummyComponent.new :foo do
|
146
|
+
@hash[:dummy_component][:foo].update moo: 'xoo'
|
147
|
+
end
|
148
|
+
|
149
|
+
assert_equal({ dummy_component: { foo: { moo: 'xoo' } } }, subject.to_hash)
|
150
|
+
end
|
151
|
+
|
152
|
+
should 'build the hash with the block without args' do
|
153
|
+
subject = DummyComponent.new do
|
154
|
+
@hash[:dummy_component].update moo: 'xoo'
|
155
|
+
end
|
156
|
+
|
157
|
+
assert_equal({ dummy_component: { moo: 'xoo' } }, subject.to_hash)
|
158
|
+
end
|
159
|
+
|
160
|
+
should 'build the hash with the option method' do
|
161
|
+
class DummyComponentWithOptionMethod
|
162
|
+
include OpenSearch::DSL::Search::BaseComponent
|
163
|
+
option_method :foo
|
164
|
+
end
|
165
|
+
|
166
|
+
subject = DummyComponentWithOptionMethod.new do
|
167
|
+
foo 'bar'
|
168
|
+
end
|
169
|
+
|
170
|
+
assert_equal({ dummy_component_with_option_method: { foo: 'bar' } }, subject.to_hash)
|
171
|
+
end
|
172
|
+
|
173
|
+
should 'build the hash with the passed args' do
|
174
|
+
subject = DummyComponent.new foo: 'bar'
|
175
|
+
|
176
|
+
assert_equal({ dummy_component: { foo: 'bar' } }, subject.to_hash)
|
177
|
+
end
|
178
|
+
|
179
|
+
should 'merge the top-level options to the hash' do
|
180
|
+
class DummyComponentWithOptionMethod
|
181
|
+
include OpenSearch::DSL::Search::BaseComponent
|
182
|
+
option_method :bar
|
183
|
+
end
|
184
|
+
|
185
|
+
subject = DummyComponentWithOptionMethod.new :foo, xoo: 'X' do
|
186
|
+
bar 'B'
|
187
|
+
end
|
188
|
+
|
189
|
+
assert_equal({ dummy_component_with_option_method: { xoo: 'X', foo: { bar: 'B' } } }, subject.to_hash)
|
190
|
+
end
|
191
|
+
|
192
|
+
should 'return the already built hash' do
|
193
|
+
subject = DummyComponent.new
|
194
|
+
subject.instance_variable_set(:@hash, { foo: 'bar' })
|
195
|
+
|
196
|
+
assert_equal({ foo: 'bar' }, subject.to_hash)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
context 'compound filter' do
|
201
|
+
subject { DummyCompoundFilter.new }
|
202
|
+
|
203
|
+
should 'raise an exception for unknown DSL method' do
|
204
|
+
assert_raise(NoMethodError) { subject.foofoo }
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
@@ -0,0 +1,84 @@
|
|
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_relative '../test_helper'
|
28
|
+
|
29
|
+
module OpenSearch
|
30
|
+
module Test
|
31
|
+
class SearchFilterTest < ::OpenSearch::Test::UnitTestCase
|
32
|
+
subject { OpenSearch::DSL::Search::Filter.new }
|
33
|
+
|
34
|
+
context 'Search Filter' do
|
35
|
+
should 'be serializable to a Hash' do
|
36
|
+
assert_equal({}, subject.to_hash)
|
37
|
+
|
38
|
+
subject = OpenSearch::DSL::Search::Filter.new
|
39
|
+
subject.instance_variable_set(:@value, { foo: 'bar' })
|
40
|
+
assert_equal({ foo: 'bar' }, subject.to_hash)
|
41
|
+
end
|
42
|
+
|
43
|
+
should 'evaluate the block and return itself' do
|
44
|
+
block = proc { 1 + 1 }
|
45
|
+
subject = OpenSearch::DSL::Search::Filter.new(&block)
|
46
|
+
|
47
|
+
subject.expects(:instance_eval)
|
48
|
+
assert_instance_of OpenSearch::DSL::Search::Filter, subject.call
|
49
|
+
end
|
50
|
+
|
51
|
+
should 'call the block and return itself' do
|
52
|
+
block = proc { |_s| 1 + 1 }
|
53
|
+
subject = OpenSearch::DSL::Search::Filter.new(&block)
|
54
|
+
|
55
|
+
block.expects(:call)
|
56
|
+
assert_instance_of OpenSearch::DSL::Search::Filter, subject.call
|
57
|
+
end
|
58
|
+
|
59
|
+
should 'define the value with filter methods' do
|
60
|
+
assert_nothing_raised do
|
61
|
+
subject.term foo: 'bar'
|
62
|
+
assert_instance_of Hash, subject.to_hash
|
63
|
+
assert_equal({ term: { foo: 'bar' } }, subject.to_hash)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
should 'redefine the value with filter methods' do
|
68
|
+
assert_nothing_raised do
|
69
|
+
subject.term foo: 'bar'
|
70
|
+
subject.term foo: 'bam'
|
71
|
+
subject.to_hash
|
72
|
+
subject.to_hash
|
73
|
+
assert_instance_of Hash, subject.to_hash
|
74
|
+
assert_equal({ term: { foo: 'bam' } }, subject.to_hash)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
should 'raise an exception for unknown filter' do
|
79
|
+
assert_raise(NoMethodError) { subject.foofoo }
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,103 @@
|
|
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_relative '../test_helper'
|
28
|
+
|
29
|
+
module OpenSearch
|
30
|
+
module Test
|
31
|
+
class HighlightTest < ::OpenSearch::Test::UnitTestCase
|
32
|
+
context 'Search highlight' do
|
33
|
+
subject { OpenSearch::DSL::Search::Highlight.new }
|
34
|
+
|
35
|
+
should 'take a Hash' do
|
36
|
+
subject = OpenSearch::DSL::Search::Highlight.new fields: { 'foo' => {} }, pre_tags: ['*'], post_tags: ['*']
|
37
|
+
|
38
|
+
assert_equal({ fields: { 'foo' => {} }, pre_tags: ['*'], post_tags: ['*'] }, subject.to_hash)
|
39
|
+
end
|
40
|
+
|
41
|
+
should 'encode fields as an array' do
|
42
|
+
subject.fields %w[foo bar]
|
43
|
+
assert_equal({ fields: { foo: {}, bar: {} } }, subject.to_hash)
|
44
|
+
end
|
45
|
+
|
46
|
+
should 'encode fields as a Hash' do
|
47
|
+
subject.fields foo: { bar: 1 }, xoo: { bar: 2 }
|
48
|
+
assert_equal({ fields: { foo: { bar: 1 }, xoo: { bar: 2 } } }, subject.to_hash)
|
49
|
+
end
|
50
|
+
|
51
|
+
should 'encode a field' do
|
52
|
+
subject.field 'foo'
|
53
|
+
assert_equal({ fields: { foo: {} } }, subject.to_hash)
|
54
|
+
end
|
55
|
+
|
56
|
+
should 'be additive on multiple calls' do
|
57
|
+
subject.fields %w[foo bar]
|
58
|
+
subject.field 'bam'
|
59
|
+
subject.field 'baz', { xoo: 10 }
|
60
|
+
assert_equal({ fields: { foo: {}, bar: {}, bam: {}, baz: { xoo: 10 } } }, subject.to_hash)
|
61
|
+
end
|
62
|
+
|
63
|
+
should 'encode pre_tags' do
|
64
|
+
subject.pre_tags '*'
|
65
|
+
assert_equal({ pre_tags: ['*'] }, subject.to_hash)
|
66
|
+
end
|
67
|
+
|
68
|
+
should 'encode post_tags' do
|
69
|
+
subject.post_tags '*'
|
70
|
+
assert_equal({ post_tags: ['*'] }, subject.to_hash)
|
71
|
+
end
|
72
|
+
|
73
|
+
should 'encode pre_tags as an array' do
|
74
|
+
subject.pre_tags ['*', '**']
|
75
|
+
assert_equal({ pre_tags: ['*', '**'] }, subject.to_hash)
|
76
|
+
end
|
77
|
+
|
78
|
+
should 'encode post_tags as an array' do
|
79
|
+
subject.post_tags ['*', '**']
|
80
|
+
assert_equal({ post_tags: ['*', '**'] }, subject.to_hash)
|
81
|
+
end
|
82
|
+
|
83
|
+
should 'encode the encoder option' do
|
84
|
+
subject.encoder 'foo'
|
85
|
+
assert_equal({ encoder: 'foo' }, subject.to_hash)
|
86
|
+
end
|
87
|
+
|
88
|
+
should 'encode the tags_schema option' do
|
89
|
+
subject.tags_schema 'foo'
|
90
|
+
assert_equal({ tags_schema: 'foo' }, subject.to_hash)
|
91
|
+
end
|
92
|
+
|
93
|
+
should 'combine the options' do
|
94
|
+
subject.fields %w[foo bar]
|
95
|
+
subject.field 'bam'
|
96
|
+
subject.pre_tags '*'
|
97
|
+
subject.post_tags '*'
|
98
|
+
assert_equal({ fields: { foo: {}, bar: {}, bam: {} }, pre_tags: ['*'], post_tags: ['*'] }, subject.to_hash)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,114 @@
|
|
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_relative '../test_helper'
|
28
|
+
|
29
|
+
module OpenSearch
|
30
|
+
module Test
|
31
|
+
class SearchOptionsTest < ::OpenSearch::Test::UnitTestCase
|
32
|
+
subject { OpenSearch::DSL::Search::Options.new }
|
33
|
+
|
34
|
+
context 'Search options' do
|
35
|
+
should 'combine different options' do
|
36
|
+
subject.version true
|
37
|
+
subject.min_score 0.5
|
38
|
+
|
39
|
+
assert_equal({ version: true, min_score: 0.5 }, subject.to_hash)
|
40
|
+
end
|
41
|
+
|
42
|
+
should 'encode _source' do
|
43
|
+
subject._source false
|
44
|
+
assert_equal({ _source: false }, subject.to_hash)
|
45
|
+
|
46
|
+
subject._source 'foo.*'
|
47
|
+
assert_equal({ _source: 'foo.*' }, subject.to_hash)
|
48
|
+
|
49
|
+
subject._source %w[foo bar]
|
50
|
+
assert_equal({ _source: %w[foo bar] }, subject.to_hash)
|
51
|
+
|
52
|
+
subject._source include: ['foo.*'], exclude: ['bar.*']
|
53
|
+
assert_equal({ _source: { include: ['foo.*'], exclude: ['bar.*'] } }, subject.to_hash)
|
54
|
+
|
55
|
+
subject.source false
|
56
|
+
assert_equal({ _source: false }, subject.to_hash)
|
57
|
+
end
|
58
|
+
|
59
|
+
should 'encode fields' do
|
60
|
+
subject.fields ['foo']
|
61
|
+
assert_equal({ fields: ['foo'] }, subject.to_hash)
|
62
|
+
end
|
63
|
+
|
64
|
+
should 'encode script_fields' do
|
65
|
+
subject.script_fields ['foo']
|
66
|
+
assert_equal({ script_fields: ['foo'] }, subject.to_hash)
|
67
|
+
end
|
68
|
+
|
69
|
+
should 'encode fielddata_fields' do
|
70
|
+
subject.fielddata_fields ['foo']
|
71
|
+
assert_equal({ fielddata_fields: ['foo'] }, subject.to_hash)
|
72
|
+
end
|
73
|
+
|
74
|
+
should 'encode rescore' do
|
75
|
+
subject.rescore foo: 'bar'
|
76
|
+
assert_equal({ rescore: { foo: 'bar' } }, subject.to_hash)
|
77
|
+
end
|
78
|
+
|
79
|
+
should 'encode explain' do
|
80
|
+
subject.explain true
|
81
|
+
assert_equal({ explain: true }, subject.to_hash)
|
82
|
+
end
|
83
|
+
|
84
|
+
should 'encode version' do
|
85
|
+
subject.version true
|
86
|
+
assert_equal({ version: true }, subject.to_hash)
|
87
|
+
end
|
88
|
+
|
89
|
+
should 'encode track_total_hits' do
|
90
|
+
subject.track_total_hits 123
|
91
|
+
assert_equal({ track_total_hits: 123 }, subject.to_hash)
|
92
|
+
|
93
|
+
subject.track_total_hits true
|
94
|
+
assert_equal({ track_total_hits: true }, subject.to_hash)
|
95
|
+
end
|
96
|
+
|
97
|
+
should 'encode indices_boost' do
|
98
|
+
subject.indices_boost foo: 'bar'
|
99
|
+
assert_equal({ indices_boost: { foo: 'bar' } }, subject.to_hash)
|
100
|
+
end
|
101
|
+
|
102
|
+
should 'encode track_scores' do
|
103
|
+
subject.track_scores true
|
104
|
+
assert_equal({ track_scores: true }, subject.to_hash)
|
105
|
+
end
|
106
|
+
|
107
|
+
should 'encode min_score' do
|
108
|
+
subject.min_score 0.5
|
109
|
+
assert_equal({ min_score: 0.5 }, subject.to_hash)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,88 @@
|
|
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_relative '../test_helper'
|
28
|
+
|
29
|
+
module OpenSearch
|
30
|
+
module Test
|
31
|
+
class SearchQueryTest < ::OpenSearch::Test::UnitTestCase
|
32
|
+
subject { OpenSearch::DSL::Search::Query.new }
|
33
|
+
|
34
|
+
context 'Search Query' do
|
35
|
+
should 'be serializable to a Hash' do
|
36
|
+
assert_equal({}, subject.to_hash)
|
37
|
+
|
38
|
+
subject = OpenSearch::DSL::Search::Query.new
|
39
|
+
subject.instance_variable_set(:@value, {})
|
40
|
+
assert_equal({}, subject.to_hash)
|
41
|
+
end
|
42
|
+
|
43
|
+
should 'evaluate the block and return itself' do
|
44
|
+
block = proc { 1 + 1 }
|
45
|
+
subject = OpenSearch::DSL::Search::Query.new(&block)
|
46
|
+
|
47
|
+
subject.expects(:instance_eval)
|
48
|
+
assert_instance_of OpenSearch::DSL::Search::Query, subject.call
|
49
|
+
end
|
50
|
+
|
51
|
+
should 'call the block and return itself' do
|
52
|
+
block = proc { |_s| 1 + 1 }
|
53
|
+
subject = OpenSearch::DSL::Search::Query.new(&block)
|
54
|
+
|
55
|
+
block.expects(:call)
|
56
|
+
assert_instance_of OpenSearch::DSL::Search::Query, subject.call
|
57
|
+
end
|
58
|
+
|
59
|
+
should 'define the value with query methods' do
|
60
|
+
assert_nothing_raised do
|
61
|
+
subject.match foo: 'bar'
|
62
|
+
assert_instance_of Hash, subject.to_hash
|
63
|
+
assert_equal({ match: { foo: 'bar' } }, subject.to_hash)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
should 'redefine the value with query methods' do
|
68
|
+
assert_nothing_raised do
|
69
|
+
subject.match foo: 'bar'
|
70
|
+
subject.match foo: 'bam'
|
71
|
+
subject.to_hash
|
72
|
+
subject.to_hash
|
73
|
+
assert_instance_of Hash, subject.to_hash
|
74
|
+
assert_equal({ match: { foo: 'bam' } }, subject.to_hash)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
should 'have the query methods' do
|
79
|
+
assert_nothing_raised { subject.match foo: 'bar' }
|
80
|
+
end
|
81
|
+
|
82
|
+
should 'raise an exception for unknown query' do
|
83
|
+
assert_raise(NoMethodError) { subject.foofoo }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|