A summary of data about the Ruby ecosystem.

Recent Releases of https://github.com/elastic/elasticsearch-ruby

https://github.com/elastic/elasticsearch-ruby - v9.3.0

Gem

  • Tested versions of Ruby for 9.2.0: Ruby (MRI) 3.2, 3.3, 3.4, 4.0, JRuby 9.3, JRuby 9.4 and JRuby 10.

Support for base64 indexing for vector values

Adds support for base64 ingestion of floating point arrays. You can use this by calling the client's pack_dense_vector function with the data to be converted to Base64 vector encoding for Bulk ingestion:

> data = [1.0, 2.0]
=> [1.0, 2.0]
> client.pack_dense_vector(data)
=> "P4AAAEAAAAA="

See the Pull Request in Elasticsearch for more information. This change introduces base64 as a dependency.

ES|QL Query Builder

The Ruby ES|QL Query Builder version 0.4.0 has been released. The recent new versions add support for several functions: TS for time series indices, STATS, 🐔, FORK and FUSE.

Elasticsearch API

API updates

  • async_search.submit, cat.count, count, field_caps, indices.resolve_index, open_point_in_time, search, sql.query - removes parameter :project_routing from query parameters, should be sent in the body.
  • cat.segments - Adds :expan_wildcards, allow_no_indices, ignore_throttled, ignore_unavailable, allow_closed parameters.
  • indices.cancel_migrate_reindex, indices.create_from, indices.get_index_template, indices.migrate_reindex - promoted from Techincal Preview to stable.
  • machine_learning.start_data_frame_analytics, machine_learning.stop_data_frame_analytics, machine_learning.stop_trained_model_deployment - Request body added as a parameter.
  • machine_learning.stop_datafeed - adds parameter close_job, if true the job associated with the datafeed is closed.
  • project.tags - Adds :project_routing parameter (This API is in technical preview and is only available in Serverless).
  • transform.get_node_stats - Adds parameters:
    • :error_trace - When set to true Elasticsearch will include the full stack trace of errors when they occur.
    • :filter_path - Comma-separated list of filters in dot notation which reduce the response returned by Elasticsearch.
    • :human - When set to true will return statistics in a format suitable for humans.
    • :pretty - If set to true the returned JSON will be "pretty-formatted". Use this option for debugging only.

New APIs

  • cat.circuit_breaker - Get circuit breakers statistics. (CAT APIs are only intended for human consumption using the command line or Kibana console. They are not intended for use by applications)
  • inference.put_groq - Create an inference endpoint to perform an inference task with the groq service.
  • inference.put_nvidia - Create an inference endpoint to perform an inference task with the nvidia service.
  • inference.put_openshift_ai - Create an inference endpoint to perform an inference task with the openshift_ai service.

New APIs in Technical Preview

  • esql.delete_view - Deletes a stored ES|QL view.
  • esql.get_view - Returns a stored ES|QL view.
  • esql.put_view - Create or update an ES|QL view.
  • indices.delete_sample_configuration - Delete the sampling configuration for the specified index.
  • indices.get_all_configuration - Get the sampling configurations for all indices.
  • indices.get_sample - Request for a random sample of raw documents ingested into the given index or data stream.
  • indices.get_sample_configuration - Get the sampling configuration for the specified index.
  • indices.get_sample_stats - Request stats for a random sample of raw documents ingested into the given index or data stream.
  • indices.put_sample_configuration - Create or update the sampling configuration for the specified index.

- Ruby
Published by picandocodigo 28 days ago

https://github.com/elastic/elasticsearch-ruby - v8.19.3

  • Dev: This release replaces the deprecated artifacts API with a new up to date one (https://github.com/elastic/elasticsearch-ruby/pull/2844[Pull Request]). This is used for downloading the REST tests and specification from Elasticsearch in development.
  • Dev: The 8.19 branch now tests for Ruby 4.0, so the gems ostruct and benchmark have been added to Gemfiles when RUBY_VERSION >= '4'.

API Changes

  • Code updated to the latest Elasticsearch 8.19.11 specification.

  • General source code documentation updates.

  • indices.data_streams_stats - New parameter: [List] :expand_wildcards Whether to expand wildcard expressions to concrete data stream names that are open, closed or both. (options: all, closed, hidden, none, open)

  • Inference APIs add [Time] :timeout parameter:

    • inference.chat_completion_unified
    • inference.completion
    • inference.inference
    • inference.put
    • inference.put_alibabacloud
    • inference.put_amazonbedrock
    • inference.put_amazonsagemaker
    • inference.put_anthropic
    • inference.put_azureaistudio
    • inference.put_azureopenai
    • inference.put_cohere
    • inference.put_deepseek
    • inference.put_elasticsearch
    • inference.put_elser
    • inference.put_googleaistudio
    • inference.put_googlevertexai
    • inference.put_hugging_face
    • inference.put_jinaai
    • inference.put_mistral
    • inference.put_openai
    • inference.put_voyageai
    • inference.put_watsonx
  • Update for ml.infer_trained_model_path:
    /_ml/trained_models/{model_id}/deployment/_infer is deprecated since version 8.2.0. The code has been updated to use
    /_ml/trained_models/{model_id}/_infer instead. The response object is different and will return:

{
  "inference_results":
  [
    {"predicted_value": [[1.0,1.0]]}
  ]
}

Instead of:

{"predicted_value": [[1.0,1.0]]}

- Ruby
Published by picandocodigo about 1 month ago

https://github.com/elastic/elasticsearch-ruby - v8.19.2

API changes

Code updated to the latest Elasticsearch 8.19.6 specification.

  • General: Better type documentation in source code for Number types.
  • esql.async_query_stop: New parameter:
    • [Boolean] :drop_null_columns Indicates whether columns that are entirely null will be removed from the columns and values portion of the results.
  • 🐈 Cat APIs update: The following parameters are now accepted in all the CAT APIs:
    • [String] :bytes The unit in which to display byte values (options: b, kb, mb, gb, tb, pb)
    • [String] :time The unit in which to display time values (options: d, h, m, s, ms, micros, nanos)
  • New parameters in cat.segments :
    • [String, Array] :expand_wildcards Type of index that wildcard expressions can match.
    • [Boolean] :allow_no_indices If false, the request returns an error if any wildcard expression, index alias, or _all value targets only.
    • [Boolean] :ignore_throttled If true, concrete, expanded or aliased indices are ignored when frozen.
    • [Boolean] :ignore_unavailable If true, missing or closed indices are not included in the response.
    • [Boolean] :allow_closed If true, allow closed indices to be returned in the response otherwise if false, keep the legacy behaviour.
  • These Connector APIs have been promoted from Experimental to Beta: connector.delete, connector.get, connector.list, connector.post, connector.put, connector.sync_job_cancel, connector.sync_job_delete, connector.sync_job_get, connector.sync_job_list, connector.sync_job_post, connector.update_api_key_id, connector.update_configuration, connector.update_filtering, connector.update_index_name, connector.update_name, connector.update_native, connector.update_pipeline, connector.update_scheduling, connector.udpate_service_type.
  • indices.create_from - Create an index from a source index. Migrated from Experimental to Stable. Documentation
  • query_rules.test - Test a query ruleset. Migrated from Experimental to Stable.
  • search_application.delete, search_application.get, search_application.list, search_application.put, `search_application.search** - Migrated from Experimental to Beta.

Breaking change - request body required

The :body parameter is now required in the following APIs:

  • close_point_in_time
  • fleet.search
  • graph.explore
  • index_lifecycle_management.move_to_step
  • index_lifecycle_management.put_lifecycle
  • indices.analyze
  • indices.put_data_lifecycle
  • indices.put_data_stream_options
  • indices.shrink
  • indices.split
  • inference.completion
  • inference.inference
  • inference.put
  • inference.put_alibabacloud
  • inference.put_amazonbedrock
  • inference.put_amazonsagemaker
  • inference.put_anthropic
  • inference.put_azureaistudio
  • inference.put_azureopenai
  • inference.put_cohere
  • inference.put_custom
  • inference.put_deepseek
  • inference.put_elasticsearch
  • inference.put_elser
  • inference.put_googleaistudio
  • inference.put_googlevertexai
  • inference.put_hugging_face
  • inference.put_jinaai
  • inference.put_mistral
  • inference.put_openai
  • inference.put_voyageai
  • inference.put_watsonx
  • inference.rerank
  • inference.sparse_embedding
  • inference.stream_completion
  • inference.text_embedding
  • inference.update
  • knn_search
  • render_search_template
  • scripts_painless_execute
  • snapshot_lifecycle_management.put_lifecycle
  • terms_enum

New APIs

  • indices.cancel_migrate_reindex - Cancel a migration reindex operation.
  • indices.get_migrate_reindex_status - Get the migration reindexing status.
  • indices.migrate_reindex - Reindex legacy backing indices
    Migrate data stream documentation

- Ruby
Published by picandocodigo 4 months ago

https://github.com/elastic/elasticsearch-ruby - v9.1.3

Elasticsearch API

Updates API code to the latest Elasticsearch 9.1 specification.

  • Updates :bytes and :time parameters in Cat endpoints:

    • cat.aliases, cat.allocation, cat.component_templates, cat.count, cat.fielddata, cat.health, cat.indices, cat.master, cat.ml_data_frame_analytics, cat.ml_datafeeds, cat.ml_jobs, cat.ml_trained_models, cat.nodeattrs, cat.nodes, cat.pending_tasks, cat.plugins, cat.recovery, cat.repositories, cat.segments, cat.shards, cat.snapshots, cat.tasks, cat.templates, cat.thread_pool, cat.transforms:
      • Adds :bytes [String] - Sets the units for columns that contain a byte-size value
      • Adds :time [String] - Sets the units for columns that contain a time duration.
    • cat.allocation, cat.fielddata, cat.health, cat.indices, cat.ml_data_frame_analytics, cat.ml_jobs, cat.ml_trained_models, cat.nodes, cat.recovery, cat.segments, cat.shards:
      • Removes :bytes parameter.
    • cat.indices, cat.ml_data_frame_analytics, cat.ml_datafeeds, cat.ml_jobs, cat.ml_trained_models, cat.nodes, cat.pending_tasks, cat.recovery, cat.shards, cat.snapshots, cat.tasks, cat.thread_pool, cat.transforms:
      • Removes :time parameter.
  • Adds available parameters to experimental Stream namespace APIs. Updates streams.logs_disable, streams.logs_enable, streams.status.

    • [Time] :master_timeout The period to wait for a connection to the master node.
    • [Time] :timeout The period to wait for a response.
    • [Boolean] :error_trace When set to true Elasticsearch will include the full stack trace of errors when they occur.
    • [String, Array] :filter_path Comma-separated list of filters in dot notation which reduce the response returned by Elasticsearch.
    • [Boolean] :human When set to true will return statistics in a format suitable for humans.
    • [Boolean] :pretty If set to true the returned JSON will be "pretty-formatted". Only use this option for debugging.
  • New parameters in cat.segments :

    • [String, Array] :expand_wildcards Type of index that wildcard expressions can match.
    • [Boolean] :allow_no_indices If false, the request returns an error if any wildcard expression, index alias, or _all value targets only.
    • [Boolean] :ignore_throttled If true, concrete, expanded or aliased indices are ignored when frozen.
    • [Boolean] :ignore_unavailable If true, missing or closed indices are not included in the response.
    • [Boolean] :allow_closed If true, allow closed indices to be returned in the response otherwise if false, keep the legacy behaviour.
  • watcher.put_watch - body is now required

- Ruby
Published by picandocodigo 4 months ago

https://github.com/elastic/elasticsearch-ruby - v9.2.0

Gem

  • Tested versions of Ruby for 9.2.0: Ruby (MRI) 3.2, 3.3, 3.4, head, JRuby 9.3, JRuby 9.4 and JRuby 10.
  • Cleaned up deprecated code for code generation in elasticsearch-api/utils.

Elasticsearch API

Code updated to the latest Elasticsearch 9.2 specification.

API Updates

  • async_search.submit, cat.count, count, eql.search, field_caps, indices.resolve_index. msearch, msearch_template, open_point_in_time, search, search_mvt, search_template, sql.query - New parameter:
    • :project_routing. Specifies a subset of projects to target for the search using project metadata tags in a subset of Lucene query syntax. Supported in serverless only.
  • cluster.allocation_explain - New parameters:
    • [String] :index The name of the index that you would like an explanation for.
    • [Integer] :shard An identifier for the shard that you would like an explanation for.
    • [Boolean] :primary If true, returns an explanation for the primary shard for the specified shard ID.
    • [String] :current_node Explain a shard only if it is currently located on the specified node name or node ID.
  • get - New parameter:
    • [Boolean] :_source_exclude_vectors Whether vectors should be excluded from _source
  • indices.resolve_index - New parameter:
    • [String, Array] :mode Filter indices by index mode - standard, lookup, time_series, etc. Comma-separated list of IndexMode. Empty means no filter.
  • search - New parameter:
    • [Boolean] :_source_exclude_vectors Whether vectors should be excluded from _source.
  • security.update_settings - New parameter:
    • [String] :merge_type The mapping merge type if mapping overrides are being provided in mapping_addition.

Breaking change - request body required

The :body parameter is now required in the following APIs:

  • close_point_in_time
  • fleet.search
  • graph.explore
  • index_lifecycle_management.move_to_step
  • index_lifecycle_management.put_lifecycle
  • indices.analyze
  • indices.put_data_lifecycle
  • indices.put_data_stream_options
  • indices.shrink
  • indices.split
  • inference.completion
  • inference.inference
  • inference.put_alibabacloud
  • inference.put_amazonbedrock
  • inference.put_amazonsagemaker
  • inference.put_anthropic
  • inference.put_azureaistudio
  • inference.put_azureopenai
  • inference.put_cohere
  • inference.put_custom
  • inference.put_deepseek
  • inference.put_elasticsearch
  • inference.put_elser
  • inference.put_googleaistudio
  • inference.put_googlevertexai
  • inference.put_hugging_face
  • inference.put_jinaai
  • inference.put_mistral
  • inference.put_openai
  • inference.put_voyageai
  • inference.put_watsonx
  • inference.rerank
  • inference.sparse_embedding
  • inference.stream_completion
  • inference.text_embedding
  • render_search_template
  • scripts_painless_execute
  • snapshot_lifecycle_management.put_lifecycle
  • terms_enum

New APIs

  • indices.get_data_stream_mappings - Get mapping information for one or more data streams. Documentation.
  • indices.put_data_stream_mappings - Update data stream mappings. Documentation.
  • inference.put_ai21 - Create an inference endpoint to perform an inference task with the ai21 service. Documentation
  • inference.put_contextualai - Create an inference endpoint to perform an inference task with the contexualai service. Documentation
  • inference.put_llama - Create an inference endpoint to perform an inference task with the llama service. Documentation
  • project.tags (Experimental) - Return tags defined for the project.
  • security.get_stats - Gather security usage statistics from all node(s) within the cluster. Documentation

- Ruby
Published by picandocodigo 4 months ago

https://github.com/elastic/elasticsearch-ruby - v9.1.2

  • Fixes 2758 - msearch, bulk and other NDJSON endpoints overriding headers for content-type and accept. Pull Request.
  • Adds transform.set_upgrade_mode.
  • Updates source code documentation from latest 9.1 Elasticsearch specification.

- Ruby
Published by picandocodigo 6 months ago

https://github.com/elastic/elasticsearch-ruby - v9.0.5

Fixes 2758 - msearch, bulk and other NDJSON endpoints overriding headers for content-type and accept. Pull Request

- Ruby
Published by picandocodigo 6 months ago

https://github.com/elastic/elasticsearch-ruby - v8.19.1

  • Updated source code documentation links to Elasticsearch documentation to 8.19
  • Adds transform.set_upgrade_mode - Sets a cluster wide upgrade_mode setting that prepares transform indices for an upgrade.

- Ruby
Published by picandocodigo 6 months ago

https://github.com/elastic/elasticsearch-ruby - v8.18.1

  • Updates API code to the latest Elasticsearch 8.18 specification.
  • Adds inference.put_custom - Configure a custom inference endpoint.
  • Adds transform.set_upgrade_mode - Sets a cluster wide upgrade_mode setting that prepares transform indices for an upgrade.

- Ruby
Published by picandocodigo 6 months ago

https://github.com/elastic/elasticsearch-ruby - v9.1.1

Elasticsearch API

  • Updates source code documentation to latest 9.1 specification.
  • Adds inference.put_amazonsagemaker.

- Ruby
Published by picandocodigo 7 months ago

https://github.com/elastic/elasticsearch-ruby - v9.1.0

Gem

Tested versions of Ruby for 9.1.0: Ruby (MRI) 3.2, 3.3, 3.4, head, JRuby 9.3, JRuby 9.4 and JRuby 10.

Elasticsearch API

API updates

  • Source code documentation and code has been updated with better formatting, updated links. It's also been updated to support common parameters and common cat parameters in APIs that support it (error_trace, filter_path, human, pretty). The API reference documentation can be generated with rake doc.
  • esql.async_query, esql.query - adds allow_partial_results boolean parameter. If true, partial results will be returned if there are shard failures, but the query can continue to execute on other clusters and shards. If false, the query will fail if there are any failures. To override the default behavior, you can set the esql.query.allow_partial_results cluster setting to false. Server default: true.
  • indices.get_field_mapping - removes local parameter.
  • synonyms.put_synonym, synonyms.put_synonym_rule - add refresh boolean parameter. If true, the request will refresh the analyzers with the new synonym rule and wait for the new synonyms to be available before returning.

New APIs

  • esql.get_query (Experimental) - Get a specific running ES|QL query information.
  • esql.list_queries (Experimental) - Get running ES|QL queries information.
  • indices.delete_data_stream_options - Removes the data stream options from a data stream.
  • indices.get_data_stream_options - Get the data stream options configuration of one or more data streams.
  • indices.get_data_stream_settings - Get setting information for one or more data streams.
  • indices.put_data_stream_options - Update the data stream options of the specified data streams.
  • indices.put_data_stream_settings - Update data stream settings.
  • indices.remove_block - Remove an index block from an index.
  • inference.put_custom - Create a custom inference endpoint.
  • inference.put_deepseek - Create a DeepSeek inference endpoint.
  • snapshot.repository_verify_integrity (Experimental) - Verify the integrity of the contents of a snapshot repository. NOTE: This API is intended for exploratory use by humans. You should expect the request parameters and the response format to vary in future versions.
  • streams.logs_disable - Disable the Logs Streams feature for this cluster.
  • streams.logs_enable - Enable the Logs Streams feature for this cluster.
  • streams.status - Return the current status of the streams feature for each streams type.

- Ruby
Published by picandocodigo 7 months ago

https://github.com/elastic/elasticsearch-ruby -

Client

Tested versions of Ruby for 8.19.0: Ruby (MRI) 3.1, 3.2, 3.3, 3.4. JRuby 9.3, JRuby 9.4 and JRuby 10.

API changes

  • cluster.get_component_template - Adds flat_settings boolean parameter, return settings in flat format (default: false). Adds settings_filter String parameter, filter out results, for example to filter out sensitive information.
  • cluster.put_component_template - Removes timeout parameter, adds cause String parameter, used defined reason for creation.
  • create - Adds require_alias and require_data_stream boolean parameters, to specify required type to be created.
  • eql.search - Adds ccs_minimize_roundtrips, ignore_unavailable, allow_no_indices boolean parameters and expand_wildcards String parameter.
  • esql.async_query - Adds allow_partial_results boolean parameter.
  • esql.async_query_get - Adds format String parameter (e.g. json, yaml).
  • esql.query - Adds allow_partial_results boolean parameter.
  • indices.recovery - Adds ignore_unavailable, allow_no_indices boolean parameters and expand_wildcards String parameter.
  • msearch - Adds ignore_unavailable, ignore_throttled, allow_no_indices, include_named_queries_score boolean parameters, expand_wildcards String parameter and routing, a comma-separated list of specific routing values.
  • open_point_in_time - Adds max_concurrent_shard_requests parameter, the number of concurrent shard requests per node executed concurrently when opening this point-in-time
  • reindex - Adds require_alias boolean parameter.
  • search_mvt - Adds grid_agg String parameter, aggregation used to create a grid for field.
  • snapshot.repository_analyze - Adds register_operation_count parameter, the minimum number of linearizable register operations to perform in total.

Time parameters master_timeout and timeout have been added to the following APIs:

  • index_lifecycle_management:

    • delete_lifecycle
    • get_lifecycle
    • put_lifecycle
    • start
    • stop
    • explain_lifecycle - Only master_timeout
  • ingest:

    • delete_geoip_database
    • delete_ip_location_database
    • put_geoip_database
    • put_ip_location_database

New APIs

  • indices.delete_data_stream_options - Deletes the data stream options of the selected data streams.
  • indices.get_data_stream_options - Returns the data stream options of the selected data streams.
  • indices.get_data_stream_settings - Gets a data stream's settings.
  • indices.put_data_stream_options - Updates the data stream options of the selected data streams.
  • indices.put_data_stream_settings - Updates a data stream's settings.
  • inference.put_amazonsagemaker - Configure an Amazon SageMaker inference endpoint.
  • inference.put_custom - Configure a custom inference endpoint.
  • inference.put_deepseek - Configure a DeepSeek inference endpoint.

- Ruby
Published by picandocodigo 7 months ago

https://github.com/elastic/elasticsearch-ruby - v9.0.4

  • Source code documentation and code has been updated to support common parameters and common cat parameters in APIs that support it (error_trace, filter_path, human, pretty). The API reference documentation can be generated with rake doc.
  • New API: inference.put_custom

- Ruby
Published by picandocodigo 7 months ago

https://github.com/elastic/elasticsearch-ruby -

  • Adds ccr alias for cross_cluster_replication and slm alias for snapshot_lifecycle_management.
  • Tested for JRuby 10.0.0.
  • General updates in source code docs.

- Ruby
Published by picandocodigo 10 months ago

https://github.com/elastic/elasticsearch-ruby - v9.0.2

Udpates setting 'Accept' and 'Content-Type' headers as to not duplicate or overwrite user set headers https://github.com/elastic/elasticsearch-ruby/pull/2666.

- Ruby
Published by picandocodigo 10 months ago

https://github.com/elastic/elasticsearch-ruby - v9.0.1

Fixes

  • The request headers were updated for Elasticsearch v9: compatible-with=9 #2660.

- Ruby
Published by picandocodigo 10 months ago

https://github.com/elastic/elasticsearch-ruby - v9.0.0

Ruby 3.2 and up are tested and supported for 9.0. Older versions of Ruby have reached their end of life. We follow Ruby’s own maintenance policy and officially support all currently maintained versions per Ruby Maintenance Branches. The required Ruby version is set to 2.6 to keep compatiblity wit JRuby 9.3. However, we only test the code against currently supported Ruby versions.

Gem

The size of both elasticsearch and elasticsearch-api gems is smaller than in previous versions. Some unnecessary files that were being included in the gem have now been removed. There has also been a lot of old code cleanup for the 9.x branch.

Elasticsearch Serverless

With the release of 9.0, the Elasticsearch Serverless client has been discontinued. You can use this client to build your Elasticsearch Serverless Ruby applications. The Elasticsearch Serverless API is fully supported. The CI build for Elasticsearch Ruby runs tests to ensure compatibility with Elasticsearch Serverless.

Elasticsearch API

  • The source code is now generated from elasticsearch-specification, so the API documentation is much more detailed and extensive. The value Elasticsearch::ES_SPECIFICATION_COMMIT is updated with the commit hash of elasticsearch-specification in which the code is based every time it's generated.
  • The API code has been updated for compatibility with Elasticsearch API v 9.0.
  • indices.get_field_mapping - :fields is a required parameter.
  • knn_search - This API has been removed. It was only ever experimental and was deprecated in v8.4. It isn't supported in 9.0, and only works when the header compatible-with=8 is set. The search API should be used for all knn queries.
  • The functions in utils.rb that had names starting with double underscore have been renamed to remove these (e.g. __listify to listify).
  • Namespaces clean up: The API namespaces are now generated dynamically based on the elasticsearch-specification. As such, some deprecated namespace files have been removed from the codebase:
    • The rollup namespace was removed. The rollup feature was never GA-ed, it has been deprecated since 8.11.0 in favor of downsampling.
    • The data_frame_deprecated, remote namespace files have been removed, no APIs were available.
    • The shutdown namespace was removed. It is designed for indirect use by ECE/ESS and ECK. Direct use is not supported.

Scroll APIs need to send scroll_id in request body

Sending the scroll_id as a parameter has been deprecated since version 7.0.0. It needs to be specified in the request body for clear_scroll and scroll.

Impact

Client code using clear_scroll or scroll APIs and the deprecated scroll_id as a parameter needs to be updated.

Action

If you are using the clear_scroll or scroll APIs, and sending the scroll_id as a parameter, you need to update your code to send the scroll_id as part of the request body:

# Before:
client.clear_scroll(scroll_id: scroll_id)
# Now:
client.clear_scroll(body: { scroll_id: scroll_id })

# Before:
client.scroll(scroll_id: scroll_id)
# Now:
client.scroll(body: { scroll_id: scroll_id })

Testing

The gem elasticsearch-api migrated away from the Elasticsearch REST API tests and test runner in CI. We now run the Elasticsearch Client tests with the Elasticsearch Tests Runner. This gives us more control on what we're testing and makes the Buildkite build way faster in Pull Requests and scheduled builds.

Fixes

  • Some old rake tasks that were not being used have been removed. The rest were streamlined, the es namespace has been streamlined to make it easier to run Elasticsearch with Docker during development. The docker task namespace was merged into es.
  • Elasticsearch's REST API Spec tests can still be ran with rake test:deprecated:rest_api and setting the corresponding value for the environment variable TEST_SUITE ('platinum' or 'free').

- Ruby
Published by picandocodigo 11 months ago

https://github.com/elastic/elasticsearch-ruby - v8.18.0

API

New APIs:

  • esql.async_query_stop - Stops a previously submitted async query request given its ID and collects the results.
  • inference.chat_completion_unified - Perform chat completion inference
  • inference.completion - Perform completion inference
  • inference.put_alibabacloud - Configure an AlibabaCloud AI Search inference endpoint
  • inference.put_amazonbedrock - Configure an Amazon Bedrock inference endpoint
  • inference.put_anthropic - Configure an Anthropic inference endpoint
  • inference.put_azureaistudio - Configure an Azure AI Studio inference endpoint
  • inference.put_azureopenai - Configure an Azure OpenAI inference endpoint
  • inference.put_cohere - Configure a Cohere inference endpoint
  • inference.put_elasticsearch - Configure an Elasticsearch inference endpoint
  • inference.put_elser - Configure an ELSER inference endpoint
  • inference.put_googleaistudio - Configure a Google AI Studio inference endpoint
  • inference.put_googlevertexai - Configure a Google Vertex AI inference endpoint
  • inference.put_hugging_face - Configure a HuggingFace inference endpoint
  • inference.put_jinaai - Configure a JinaAI inference endpoint
  • inference.put_mistral - Configure a Mistral inference endpoint
  • inference.put_openai - Configure an OpenAI inference endpoint
  • inference.put_voyageai - Configure a VoyageAI inference endpoint
  • inference.put_watsonx - Configure a Watsonx inference endpoint
  • inference.rerank - Perform reranking inference
  • inference.sparse_embedding - Perform sparse embedding inference
  • inference.stream_inference renamed to inference.stream_completion - Perform streaming completion inference.
  • inference.text_embedding - Perform text embedding inference

Updated APIs:

  • bulk, create, index, update - Add Boolean parameter :include_source_on_error, if to include the document source in the error message in case of parsing errors (defaults to true).
  • cat.segments
    • Adds Boolean parameter :local, return local information, do not retrieve the state from master node (default: false).
    • Adds Time parameter :master_timeout, explicit operation timeout for connection to master node.
  • cat.tasks
    • Adds Time parameter :timeout, period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
    • Adds Boolean parameter :wait_for_completion, if true, the request blocks until the task has completed.
  • eql.search
    • Adds Boolean parameter :allow_partial_search_results, control whether the query should keep running in case of shard failures, and return partial results.
    • Adds Boolean parameter :allow_partial_sequence_results, control whether a sequence query should return partial results or no results at all in case of shard failures. This option has effect only if [allow_partial_search_results] is true.
  • index_lifecycle_management.delete_lifecycle, index_lifecycle_management.explain_lifecycle, index_lifecycle_management.get_lifecycle, index_lifecycle_management.put_lifecycle, index_lifecycle_management.start, index_lifecycle_management.stop, remove :master_timeout, :timeout parameters.
  • indices.resolve_cluster - Adds :timeout parameter, :name no longer a required parameter.
  • indices.rollover - Removes target_failure_store parameter.
  • ingest.delete_geoip_database, ingest.delete_ip_location_database, put_geoip_database, put_ip_location_database remove :master_timeout, :timeout parameters.
  • machine_learning.start_trained_model_deployment - Adds body request parameter, the settings for the trained model deployment.

- Ruby
Published by picandocodigo 11 months ago

https://github.com/elastic/elasticsearch-ruby - v8.17.2

API

New APIs:

  • esql.async_query_delete
  • indices.get_data_lifecycle_stats
  • inference.update
  • security.delegate_pki

Updates APIs:

  • async_search.submit - Adds keep_alive Time parameter.
  • indices.put_template - Adds cause String parameter.
  • xpack.info - Adds human parameter for human-readable information.
  • Timeout parameters updated:
    • :master_timeout (Time), explicit operation timeout for connection to master node.
    • :timeout (Time), explicit operation timeout.
      • Added to:
        • index_lifecycle_management.delete_lifecycle - adds both.
        • index_lifecycle_management.delete_lifecycle - adds master_timeout.
        • index_lifecycle_management.get_lifecycle - adds both.
        • index_lifecycle_management.put_lifecycle - adds both.
        • index_lifecycle_management.start - adds both.
        • index_lifecycle_management.stop - adds both.
        • ingest.delete_geoip_database - adds both.
        • ingest.delete_geoip_location_database - adds both.
        • ingest.put_geoip_database - adds both.
        • ingest.put_ip_location_database - adds both.
        • license.post_start_trial - removes timeout.
        • shutdown.delete_node - adds both.
        • shutdown.put_node - adds both.
        • snapshot_lifecycle_management.delete_lifecycle - adds both.
        • snapshot_lifecycle_management.execute_lifecycle - adds both.
        • snapshot_lifecycle_management.execute_retention - adds both.
        • snapshot_lifecycle_management.get_lifecycle - adds both.
        • snapshot_lifecycle_management.get_stats - adds both.
        • snapshot_lifecycle_management.get_status - adds both.
        • snapshot_lifecycle_management.put_lifecycle - adds both.

APIs promoted from Experimental to Stable:

  • inference.delete
  • inference.get
  • inference.inference
  • inference.put
  • inference.stream_inference

- Ruby
Published by picandocodigo 11 months ago

https://github.com/elastic/elasticsearch-ruby - v8.17.1

  • Fixes ScrollHelper issue #2556 - There was a bug where an additional search (with scroll) request was made to Elasticsearch for each resulting hit. It was rewritten so that the docs are retrieved as needed and the Helper instance doesn't store documents internally, with big savings in memory and requests to Elasticsearch.

- Ruby
Published by picandocodigo about 1 year ago

https://github.com/elastic/elasticsearch-ruby - v8.16.1

  • Fixes ScrollHelper issue #2556 - There was a bug where an additional search (with scroll) request was made to Elasticsearch for each resulting hit. It was rewritten so that the docs are retrieved as needed and the Helper instance doesn't store documents internally, with big savings in memory and requests to Elasticsearch.

- Ruby
Published by picandocodigo about 1 year ago

https://github.com/elastic/elasticsearch-ruby - v8.17.0

Client

  • Tested versions of Ruby for 8.17.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

API

API changes

  • async_search.submit - Removes keep_alive parameter. Adds:
    • ccs_minimize_roundtrips (Boolean): When doing a cross-cluster search, setting it to true may improve overall search latency, particularly when searching clusters with a large number of shards. However, when set to true, the progress of searches on the remote clusters will not be received until the search finishes on all clusters.
    • rest_total_hits_as_int (Boolean): Indicates whether hits.total should be rendered as an integer or an object in the rest search response.
  • open_point_in_time - Adds allow_partial_search_results (Boolean) parameter: Specify whether to tolerate shards missing when creating the point-in-time, or otherwise throw an exception (default: false).

- Ruby
Published by picandocodigo about 1 year ago

https://github.com/elastic/elasticsearch-ruby - v8.16.0

Client

  • Tested versions of Ruby for 8.16.0: Ruby (MRI) 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

API

API changes

  • capabilities - Adds local_only boolean parameter: True if only the node being called should be considered.
  • cluster.stats- Removes flat_settings parameter, adds include_remotes boolean parameter: Include remote cluster data into the response (default: false)
  • indices.get_data_stream - Adds verbose boolean parameter: Whether the maximum timestamp for each data stream should be calculated and returned (default: false). Adds master_timeout (see below).
  • query_rules.delete_ruleset - Accepts ignore: 404 common parameter.
Timeout parameters:

These parameters have been added to several APIs:

  • master_timeout timeout for processing on master node.
  • timeout timeout for acknowledgement of update from all nodes in cluster parameters.

Added in:

  • indices.create_data_stream - both.
  • indices.delete_data_stream - master_timeout.
  • indices.get_data_lifecycle - master_timeout.
  • indices.get_data_stream - master_timeout.
  • indices.migrate_to_data_stream - both.
  • indices.promote_data_stream - master_timeout.
  • search_shards - master_timeout.

APIs Promoted from Experimental to Stable:

  • indices.delete_data_lifecycle
  • indices.explain_data_lifecycle
  • indices.get_data_lifecycle
  • indices.put_data_lifecycle
  • security.create_cross_cluster_api_key
  • security.update_cross_cluster_api_key

New APIs

  • ingest.delete_ip_location_database - Deletes an ip location database configuration.
  • ingest.get_ip_location_database - Returns the specified ip location database configuration.
  • ingest.put_ip_location_database - Puts the configuration for a ip location database to be downloaded.

New Experimental APIs

  • inference.stream_inference - Perform streaming inference.
  • query_rules.test - Tests a query ruleset to identify the rules that would match input criteria.

- Ruby
Published by picandocodigo over 1 year ago

https://github.com/elastic/elasticsearch-ruby -

Client

  • Tested versions of Ruby for 8.15.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

API changes

  • snapshot.delete - Adds wait_for_completion Boolean parameter, should this request wait until the operation has completed before returning.
  • cluster.allocation_explain - body is no longer a required parameter.
  • connector.put - (experimental API) body and connector_id no longer required parameters.
  • machine_learning.update_trained_model_deployment has been promoted to stable from Beta. Adds Integer parameter number_of_allocations, updates the model deployment to this number of allocations.
master_timeout and timeout parameters

These parameters have been added to several APIs:

  • master_timeout timeout for processing on master node.
  • timeout timeout for acknowledgement of update from all nodes in cluster parameters.

The APIs:

  • autoscaling.delete_autoscaling_policy - both.
  • autoscaling.get_autoscaling_capacity- master_timeout.
  • get_autoscaling_policy - master_timeout.
  • put_autoscaling_policy - both.
  • enrich.delete_policy - master_timeout.
  • enrich.execute_policy - master_timeout.
  • enrich.get_policy - master_timeout.
  • enrich.put_policy - master_timeout.
  • enrich.stats - master_timeout.
  • features.reset_features - master_timeout.
  • license.delete - both.
  • license.post - both.
  • license.post_start_basic - both.
  • license.post_start_trial - both.
  • security.get_settings - master_timeout.
  • security.update_settings - both.
  • shutdown.get_node - master_timeout.
  • snapshot_lifecycle_management.start - both.
  • snapshot_lifecycle_management.stop - both.
  • watcher.get_settings - master_timeout.
  • watcher.start - master_timeout.
  • watcher.stop - master_timeout.
  • watcher.update_settings - both.
Inference APIs have been renamed:
  • inference.delete_model => inference.delete. Also adds two new parameters:
    • dry_run (Boolean), if true the endpoint will not be deleted and a list of ingest processors which reference this endpoint will be returned.
    • force (Boolean), if true the endpoint will be forcefully stopped (regardless of whether or not it is referenced by any ingest processors or semantic text fields).
  • inference.get_model => inference.get
  • inference.put_model => inference.put
Query Rules parameters consolidated

Changes in query_ruleset and query_rules APIs, these have been combined into the query_rules namespace:

  • query_rules.delete_ruleset - Renamed from query_ruleset.delete, promoted from experimental to stable.
  • query_rules.delete_rule - Deletes an individual query rule within a ruleset.
  • query_rules.get_rule - Returns the details about an individual query rule within a ruleset.
  • query_rules.get_ruleset - Renamed from query_ruleset.get, promoted from experimental to stable.
  • query_rules.list_rulesets - Renamed from query_ruleset.list, promoted from experimental to stable.
  • query_rules.put_rule - Creates or updates a query rule within a ruleset.
  • query_rules.put_ruleset - Renamed from query_ruleset.put_ruleset, promoted from experimental to stable.

New APIs:

  • ingest.delete_geoip_database - Deletes a geoip database configuration.
  • ingest.get_geoip_database - Returns geoip database configuration.
  • ingest.put_geoip_database - Puts the configuration for a geoip database to be downloaded.
  • security.bulk_delete_role - Bulk delete roles in the native realm.
  • security.bulk_put_role - Bulk adds and updates roles in the native realm.
  • security.query_role - Retrieves information for Roles using a subset of query DSL.
  • transform.get_node_stats - Retrieves transform usage information for transform nodes.

New Experimental APIs:

  • connector.sync_job_claim - Claims a connector sync job.
  • connector.update_features - Updates the connector features in the connector document.

Development

- Ruby
Published by picandocodigo over 1 year ago

https://github.com/elastic/elasticsearch-ruby - v8.14.0

Client

  • Tested versions of Ruby for 8.14.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

API

API changes:

  • All Connector APIs have been migrated to one common namespace connector:

    • connector_secret.delete -> connector.secret_delete
    • connector_secret.get -> connector.secret_get
    • connector_secret.post -> connector.secret_post
    • connector_secret.put -> connector.secret_put
    • connector_sync_job.cancel -> connector.sync_job_cancel
    • connector_sync_job.check_in -> connector.sync_job_check_in
    • connector_sync_job.delete -> connector.sync_job_delete
    • connector_sync_job.error -> connector.sync_job_error
    • connector_sync_job.get -> connector.sync_job_get
    • connector_sync_job.post -> connector.sync_job_post
    • connector_sync_job.update_stats -> connector.sync_job_update_stats
  • connector.delete - Adds Boolean parameter :delete_sync_jobs: Determines whether associated sync jobs are also deleted.

  • cross_cluster_replication.delete_auto_follow_pattern, cross_cluster_replication.follow, cross_cluster_replication.follow_info, cross_cluster_replication.get_auto_follow_pattern, cross_cluster_replication.pause_auto_follow_pattern, cross_cluster_replication.pause_follow, cross_cluster_replication.put_auto_follow_pattern, cross_cluster_replication.resume_auto_follow_pattern, cross_cluster_replication.resume_follow, cross_cluster_replication.stats, cross_cluster_replication.unfollow - Add Time parameter :master_timeout: Explicit operation timeout for connection to master node.

  • cross_cluster_replication.follow_stats, cross_cluster_replication.forget_follower, cross_cluster_replication.stats - Add Time parameter :timeout: Explicit operation timeout.

  • indices/rollover - Adds Boolean parameter :target_failure If set to true, the rollover action will be applied on the failure store of the data stream.

  • inference.get_model - Parameter inference_id no longer required.

  • search_application.search - Adds Boolean parameter :typed_keys: Specify whether aggregation and suggester names should be prefixed by their respective types in the response.

  • security.get_api_key, security.query_api_keys - Add Boolean parameter :with_profile_uid: flag to also retrieve the API Key's owner profile uid, if it exists.

New APIs:

  • profiling.topn_functions - Extracts a list of topN functions from Universal Profiling.
  • text_structure.find_field_structure - Finds the structure of a text field in an index.
  • text_structure/find_message_structure- Finds the structure of a list of messages. The messages must contain data that is suitable to be ingested into Elasticsearch.

APIs Migrated from experimental to stable:

  • esql.async_query
  • esql.query

New Experimental APIs:

  • connector.update_active_filtering - Activates the draft filtering rules if they are in a validated state.
  • connector.update_filtering_validation - Updates the validation info of the draft filtering rules.

- Ruby
Published by picandocodigo over 1 year ago

https://github.com/elastic/elasticsearch-ruby - v7.17.11

  • Ruby 3.3 added to the test matrix. Tested versions of Ruby for 7.17.11: Ruby (MRI) 3.0, 3.1, 3.2, 3.3, JRuby 9.3, JRuby 9.4.
  • Adds base64 dependency to elasticsearch-transport: base64 was added to the gemspec, since starting in Ruby 3.4.0, base64 will no longer be part of the default gems and will no longer be in the standard library, #2400

- Ruby
Published by picandocodigo over 1 year ago

https://github.com/elastic/elasticsearch-ruby - v8.13.0

Client

  • Tested versions of Ruby for 8.13.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

Experimental ES|QL Helper

This version provides a new experimental Helper for the ES|QL query API. The helper returns an array of hashes with the columns as keys and the respective values instead of the default JSON value. Additionally, you can iterate through the response values and transform the data in by passing in a Hash of column => Proc values. You could use this for example to convert a @timestamp column value into a DateTime object. Please check out the documentation and open an issue if you encounter any problems or have any feedback.

API

API Changes:

  • async_search.status - adds Time :keep_alive parameter: Specify the time interval in which the results (partial or final) for this search will be available.
  • bulk - adds boolean :require_data_stream parameter: When true, requires the destination to be a data stream (existing or to-be-created). Default is false.
  • connector.list - Adds the following parameters:
    • :index_name (List): A comma-separated list of connector index names to fetch connector documents for.
    • :connector_name (List): A comma-separated list of connector names to fetch connector documents for.
    • :service_type (List): A comma-separated list of connector service types to fetch connector documents for.
    • :query (String): A search string for querying connectors, filtering results by matching against connector names, descriptions, and index names.
  • esql.query - adds boolean :drop_null_columns parameter: Should entirely null columns be removed from the results? Their name and type will be returning in a new all_columns section.
  • field_caps - Adds :include_empty_fields boolean parameter: Include empty fields in result.
  • index - adds boolean :require_data_stream parameter: When true, requires the destination to be a data stream (existing or to-be-created). Default is false.
  • indices.rollover - adds boolean :lazy parameter: If set to true, the rollover action will only mark a data stream to signal that it needs to be rolled over at the next write. Only allowed on data streams.
  • connector_sync_job.list - adds List :job_type parameter: A comma-separated list of job types.
  • inference.delete_model, inference.get_model, inference.inference, inference.put_model: renames :model_id parameter to :inference_id.
  • termvector will show a warning since it's been deprecated. Please use the plural version, termvectors.

New APIs:

  • indices.resolve_cluster - Resolves the specified index expressions to return information about each cluster, including the local cluster, if included.
  • profiling.flamegraph - Extracts a UI-optimized structure to render flamegraphs from Universal Profiling.
  • profiling.stacktraces - Extracts raw stacktrace information from Universal Profiling.
  • security.query_user - Retrieves information for Users using a subset of query DSL
  • text_structure.test_grok_pattern - Tests a Grok pattern on some text.

APIs Migrated from experimental to stable:

  • synonyms.delete_synonym
  • synonyms.delete_synonym_rule
  • synonyms.get_synonym
  • synonyms.get_synonym_rule
  • synonyms.get_synonyms_sets
  • synonyms.put_synonym
  • synonyms.put_synonym_rule

New Experimental APIs:

  • connector.update_api_key_id - Updates the API key id and/or API key secret id fields in the connector document.
  • connector.update_index_name - Updates the index name of the connector.
  • connector.update_native - Updates the is_native flag of the connector.
  • connector.update_service_type - Updates the service type of the connector.
  • connector.update_status - Updates the status of the connector.
  • esql.async_query - Executes an ESQL request asynchronously
  • esql.async_query_get - Retrieves the results of a previously submitted async query request given its ID.

New Experimental namespace connector_secret:

  • connector_secret.delete - Deletes a connector secret.
  • connector_secret.get - Retrieves a secret stored by Connectors.
  • connector_secret.post - Creates a secret for a Connector.
  • connector_secret.put - Creates or updates a secret for a Connector.

Development

  • Migrated from byebug to debug.
  • Added extra testing for OpenTelemetry.

- Ruby
Published by picandocodigo almost 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.12.2

Drops runtime dependency on base64. Thanks Earlopain! Pull Request: #2295.

- Ruby
Published by picandocodigo about 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.11.2

Drops runtime dependency on base64. Thanks Earlopain! Pull Request: #2295.

- Ruby
Published by picandocodigo about 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.12.1

Adds base64 dependency: base64 was added to the gemspec, since starting in Ruby 3.4.0, base64 will no longer be part of the default gems and will no longer be in the standard library.

Base64 is used for API key and Cloud ID. The dependency used to be declared in transport, but it's not needed there since the implementation using it is in this codebase. It was removed from transport in the latest patch releases: 8.1.3, 8.2.5 and 8.3.1.

- Ruby
Published by picandocodigo about 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.11.1

Adds base64 dependency: base64 was added to the gemspec, since starting in Ruby 3.4.0, base64 will no longer be part of the default gems and will no longer be in the standard library.

Base64 is used for API key and Cloud ID. The dependency used to be declared in transport, but it's not needed there since the implementation using it is in this codebase. It was removed from transport in the latest patch releases: 8.1.3, 8.2.5 and 8.3.1.

- Ruby
Published by picandocodigo about 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.12.0

Client

  • Tested versions of Ruby for 8.12.0: Ruby (MRI) 3.0, 3.1, 3.2 and 3.3. JRuby 9.3 and JRuby 9.4.

API

API Changes:

  • bulk - Adds boolean :list_executed_pipelines parameter: Sets list_executed_pipelines for all incoming documents. Defaults to unset (false).
  • indices.put_settings - Adds boolean :reopen parameter: Whether to close and reopen the index to apply non-dynamic settings. If set to true the indices to which the settings are being applied will be closed temporarily and then reopened in order to apply the changes. The default is false.
  • open_point_in_time - Adds Hash :body parameter: an index_filter specified with the Query DSL.
  • security.get_api_key - Adds boolean :active_only parameter: flag to limit response to only active (not invalidated or expired) API keys.

New APIs

New API for Universal profiling:

  • profiling.status - Returns basic information about the status of Universal Profiling.

New experimental API:

Connectors API

Version 8.12 introduces the experimental Connectors API. Use the following APIs to manage connectors:

  • connector.post - Creates a connector. See documentation
  • connector.put - Creates or updates a connector. See documentation
  • connector.delete - Deletes a connector. See documentation
  • connector.get - Returns the details about a connector. See documentation
  • connector.list - Lists all connectors. See documentation
  • connector.check_in - Updates the last_seen timestamp in the connector document. See documentation
  • connector.update_configuration - Updates the connector configuration. See documentation
  • connector.update_error - Updates the error field in the connector document. See documentation
  • connector.update_filtering - Updates the filtering field in the connector document. See documentation
  • connector.last_sync - Updates the stats of last sync in the connector document. See documentation
  • connector.update_name - Updates the name and/or description fields in the connector document. See documentation
  • connector.update_pipeline - Updates the pipeline field in the connector document. See documentation
  • connector.update_scheduling - Updates the scheduling field in the connector document. See documentation

Use the following APIs to manage sync jobs:

  • connector_sync_job.cancel - Cancels a connector sync job. See documentation
  • connector_sync_job.check_in - Checks in a connector sync job (refreshes 'last_seen'). See documentation
  • connector_sync_job.delete - Deletes a connector sync job. See documentation
  • connector_sync_job.error - Sets an error for a connector sync job. See documentation
  • connector_sync_job.get - Returns the details about a connector sync job. See documentation
  • connector_sync_job.list - Lists all connector sync jobs. See documentation
  • connector_sync_job.post - Creates a connector sync job. See documentation
  • connector_sync_job.update_stats - Updates the stats fields in the connector sync job document. See documentation

- Ruby
Published by picandocodigo about 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.11.0

Client

  • Tested versions of Ruby for 8.11.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.
  • Adds native support for Open Telemetry. See Open Telemetry for documentation.
  • Improved documentation, now you can find more examples in Ruby in the REST API reference.

API

New Experimental APIs:

  • esql.query - Executes an ESQL request.
  • inference.delete_model - Delete model in the Inference API.
  • inference.get_model - Get a model in the Inference API.
  • inference.inference - Perform inference on a model.
  • inference.put_model - Configure a model for use in the Inference API.

- Ruby
Published by picandocodigo over 2 years ago

https://github.com/elastic/elasticsearch-ruby - v7.17.10

Backports support for Faraday 2 from elastic-transport. ¡Gracias santiagorodriguez96!

This version of the gem now supports Faraday v2. If you don't have a locked version of Faraday in your project, when you upgrade your gems, Faraday v2 will be installed. The main change on dependencies when using Faraday v2 is all adapters, except for the default net_http one, have been moved out of Faraday into separate gems. This means if you're not using the default adapter and you migrate to Faraday v2, you'll need to add the adapter gems to your Gemfile.

These are the gems required for the different adapters with Faraday 2, instead of the libraries on which they were based:

# HTTPCLient
gem 'faraday-httpclient'

# NetHTTPPersistent
gem 'faraday-net_http_persistent'

# Patron
gem 'faraday-patron'

# Typhoeus
gem 'faraday-typhoeus'

Things should work fine if you migrate to Faraday 2 as long as you include the adapter (unless you're using the default one net-http), but worst case scenario, you can always lock the version of Faraday in your project to 1.x:
gem 'faraday', '~> 1'

Be aware if migrating to Faraday v2 that it requires at least Ruby 2.6, unlike Faraday v1 which requires 2.4.

Troubleshooting

If you see a message like:
:adapter is not registered on Faraday::Adapter (Faraday::Error)
Then you probably need to include the adapter library in your gemfile and require it.

Please submit an issue if you encounter any problems.

- Ruby
Published by picandocodigo over 2 years ago

https://github.com/elastic/elasticsearch-ruby - v7.17.9

  • Backports fix from elastic-transport: #66 - Manticore transport unable to send custom headers with perform_request Pull Request.

- Ruby
Published by picandocodigo over 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.10.0

Client

  • Tested versions of Ruby for 8.10.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.

API

New Experimental APIs, for internal use:

  • fleet.delete_secret
  • fleet.get_secret
  • fleet.post_secret

New stable APIs:

  • security.get_settings - Retrieve settings for the security system indices
  • security.update_settings - Update settings for the security system indices

New Experimental API:

  • query_ruleset.list List query rulesets.

API Changes:

  • indices.reload_search_analyzers - Adds parameter resource changed resource to reload analyzers from if applicable

Promoted from Experimental to Beta:

  • security.create_cross_cluster_api_key
  • security.update_cross_cluster_api_key

Synonyms namespace update:

All synonym related APIs have been moved to the synonyms namespace and some of the endpoints have been renamed, as well as their parameters:

  • synonyms.delete => synonyms.delete_synonym - requires id, the id of the synonyms set to be deleted.
  • synonyms.get => synonyms.get_synonym - requires id, the name of the synonyms set to be retrieved.
  • synonyms_set.get_synonyms_sets => synonyms.get_synonyms_sets
  • synonyms.put => synonyms.put_synonym - requires id of the synonyms set to be created or updated.
  • synonym_rule.put => synonyms.put_synonym_rule - Parameters changed to set_id (the id of the synonym set to be updated with the synonym rule) and rule_id (the id of the synonym rule to be updated or created).
  • New Experimental API synonyms.delete_synonym_rule - Deletes a synonym rule in a synonym set
  • New Experimental API synonyms.get_synonym_rule - Retrieves a synonym rule from a synonym set

- Ruby
Published by picandocodigo over 2 years ago

https://github.com/elastic/elasticsearch-ruby - v7.17.8

  • Patch releases back to being detached from Elastic stack releases.
  • Tested compatibility with Elasticsearch v7.17 APIs.
  • Tested versions of Ruby for 7.17.8: Ruby (MRI) 2.7, 3.0, 3.1, 3.2, JRuby 9.3, JRuby 9.4.
  • Bugfix in elasticsearch-transport: Fixes enforcing UTF-8 in Response body, causing an error when the string is frozen, particularly when using webmock: issue #63.

- Ruby
Published by picandocodigo over 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.9.0

Client

  • Tested versions of Ruby for 8.9.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.
  • Updated product validation. The code for the product validation was refactored in a few ways:
    • Just check header, does not check the version of the server.
    • Warns only once when there's a general server error.
    • Removes the call to '/' (client.info) when doing the first request, checking on the first actual request from the client.
  • Fixes User-Agent code. In the migration to 8.x, the user agent code was extracted into transport, since we're now using that library in other projects. So for the Elasticsearch Client, the user-agent would be reported as the one defined in elastic-transport. This release fixes the issue and brings back the user agent in the format that was being used in 7.x

Helpers

This release introduces two new Helpers in the client:

  • BulkHelper - This helper provides a better developer experience when using the Bulk API. At its simplest, you can send it a collection of hashes in an array, and it will bulk ingest them into {es}.
  • ScrollHelper - This helper provides an easy way to get results from a Scroll.

See Helpers to read more about them.

API

New APIs

  • cluster.info - Returns different information about the cluster.

New Experimental APIs and namespaces:

This functionality is Experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.

  • New namespace: query_ruleset
    • query_ruleset.delete - Deletes a query ruleset.
    • query_ruleset.get - Returns the details about a query ruleset.
    • query_ruleset.put - Creates or updates a query ruleset.
  • New API: search_application.render_query Renders a query for given search application search parameters.
  • New API: security.create_cross_cluster_api_key - Creates a cross-cluster API key for API key based remote cluster access.
  • New API: security.upate_cross_cluster_api_key - Updates attributes of an existing cross-cluster API key.
  • New namespace: synonyms
    • synonyms.delete- Deletes a synonym set
    • synonyms.get - Retrieves a synonym set
    • synonyms.put - Creates or updates a synonyms set
  • New namespace: synonym_rule
    • synonym_rule.put - Creates or updates a synonym rule in a synonym set
  • New namespace: synonyms
    • synonyms_set.get - Retrieves a summary of all defined synonym sets

- Ruby
Published by picandocodigo over 2 years ago

https://github.com/elastic/elasticsearch-ruby - v8.8.0

  • Tested versions of Ruby for 8.8.0: Ruby (MRI) 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.

API

  • Updates development dependency minitest-reporters to >= 1.6 to include showing failures at the end of the test run.

New APIs

  • watcher.get_settings - Retrieve settings for the watcher system index.
  • watcher.update_settings - Update settings for the watcher system index.

New Experimental APIs

  • indices.delete_data_lifecycle- Deletes the data lifecycle of the selected data streams
  • indices.explain_data_lifecycle - Retrieves information about the index's current DLM lifecycle, such as any potential encountered error, time since creation etc.
  • indices.get_data_lifecycle - Returns the data lifecycle of the selected data streams.
  • indices.put_data_lifecycle - Updates the data lifecycle of the selected data streams.
  • search_application.delete - Deletes a search application.
  • search_application.delete_behavioral_analytics - Delete a behavioral analytics collection.
  • search_application.get - Returns the details about a search application.
  • search_application.get_behavioral_analytics - Returns the existing behavioral analytics collections.
  • search_application.list - Returns the existing search applications.
  • search_application.post_behavioral_analytics_event - Creates a behavioral analytics event for existing collection.
  • search_application.put - Creates or updates a search application.
  • search_application.put_behavioral_analytics - Creates a behavioral analytics collection.
  • search_application.search - Perform a search against a search application.

API Changes

  • clear_scroll now works with the argument ignore: 404. Issue on GitHub.
  • The code generator was updated to fix a bug for ignore: 404. APIs that were supposed to support this wouldn't parse the parameters correctly. The support it now: security.get_role, watcher.delete_watch
  • cluster.get_component_template, indices.get_data_stream, indices.get_index_template, indices.simulate_index_template, indices.simulate_template - Add include_defaults (Boolean) parameter: Return all default configurations for the component template (default: false).
  • machine_learning.put_trained_model - Adds wait_for_completion (Boolean) parameter: Whether to wait for all child operations(e.g. model download) to complete, before returning or not (default: false).
  • machine_learning.start_trained_model_deployment - Adds deployiment_id (String) parameter: The Id of the new deployment. Defaults to the model_id if not set.
  • search - Adds include_named_queries_score (Boolean) parameter: Indicates whether hit.matched_queries should be rendered as a map that includes the name of the matched query associated with its score (true) or as an array containing the name of the matched queries (false).
  • transform.delete_transform - Adds delete_dest_index (Boolean) parameter: When true, the destination index is deleted together with the transform. The default value is false, meaning that the destination index will not be deleted.

- Ruby
Published by picandocodigo almost 3 years ago

https://github.com/elastic/elasticsearch-ruby - v8.7.1

API Bugfix

  • Updates logstash.get_pipeline, fixed in the specification id is not a required parameter, so removes raising ArgumentError when id is not present.

- Ruby
Published by picandocodigo almost 3 years ago

https://github.com/elastic/elasticsearch-ruby - v8.7.0

  • Tested versions of Ruby for 8.6.0: Ruby (MRI) 2.7, 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4. Ruby 2.7's end of life is coming in a few days, so this will probably be the last release to test for Ruby 2.7.

New APIs

  • health_report - Returns the health of the cluster.
  • transform.schedule_now_transform - Schedules now a transform.

API Changes

  • transform.get_transform_stats - Adds timeout (Time) parameter. Controls the time to wait for the stats.
  • transform.start_transform - Adds from (String) parameter. Restricts the set of transformed entities to those changed after this time.
  • ml.delete_job, ml.reset_job - Add delete_user_annotations (Boolean) parameter. Should annotations added by the user be deleted.
  • ml.clear_trained_model_deployment_cache, ml.infer_trained_model, ml.put_trained_model_definition_part, ml.put_trained_model_vocabulary, ml.start_trained_model_deployment, ml.stop_trained_model_deployment - These APIs are no longer in Beta.

- Ruby
Published by picandocodigo almost 3 years ago

https://github.com/elastic/elasticsearch-ruby - 8.6.0

  • Tested versions of Ruby for 8.6.0: Ruby (MRI) 2.7, 3.0, 3.1 and 3.2. JRuby 9.3 and JRuby 9.4.

New APIs

  • update_trained_model_deployment - Updates certain properties of trained model deployment (This functionality is in Beta and is subject to change).

API Changes

  • cluster.reroute - :metric parameter adds none as an option.
  • ml.start_trained_model_deployment - New parameter :priority (String), the deployment priority

- Ruby
Published by picandocodigo about 3 years ago

https://github.com/elastic/elasticsearch-ruby - 8.5.2

API Bugfix

Fixes security.create_service_token API, uses POST when token name isn't present.
Thanks @carlosdelest for reporting in #1961.

- Ruby
Published by picandocodigo over 3 years ago

https://github.com/elastic/elasticsearch-ruby - 8.5.1

Bugfix

Fixes bug when instantiating client with api_key: When passing in api_key and transport_options that don't include headers to the client, the api_key code would overwrite the arguments passed in for transport_options. This was fixed in this Pull Request.
Thanks svdasein for reporting in #1940.

- Ruby
Published by picandocodigo over 3 years ago

https://github.com/elastic/elasticsearch-ruby - 8.5.0

  • Tested versions of Ruby for 8.5.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3.

Client

With the latest release of elastic-transport - v8.1.0 - this gem now supports Faraday v2. Elasticsearch Ruby has an open dependency on elastic-transport ('elastic-transport', '~> 8'), so when you upgrade your gems, 8.1.0 will be installed. This supports both Faraday v1 and Faraday v2. The main change on dependencies when using Faraday v2 is all adapters, except for the default net_http one, have been moved out of Faraday into separate gems. This means if you're not using the default adapter and you migrate to Faraday v2, you'll need to add the adapter gems to your Gemfile.

These are the gems required for the different adapters with Faraday 2, instead of the libraries on which they were based:

# HTTPCLient
gem 'faraday-httpclient'
# NetHTTPPersistent
gem 'faraday-net_http_persistent'
# Patron
gem 'faraday-patron'
# Typhoeus
gem 'faraday-typhoeus'

Things should work fine if you migrate to Faraday 2 as long as you include the adapter (unless you're using the default one net-http), but worst case scenario, you can always lock the version of Faraday in your project to 1.x:
gem 'faraday', '~> 1'

Be aware if migrating to Faraday v2 that it requires at least Ruby 2.6, unlike Faraday v1 which requires 2.4.

Troubleshooting

If you see a message like:
:adapter is not registered on Faraday::Adapter (Faraday::Error)
Then you probably need to include the adapter library in your gemfile and require it.

Please submit an issue if you encounter any problems.

API

New APIs

  • machine_learning.clear_trained_model_deployment_cache - Clear the cached results from a trained model deployment (Beta).
  • security.bulk_update_api_keys - Updates the attributes of multiple existing API keys.

API Changes

  • rollup.rollup renamed to indices.downsample. The method now receives the index to downsample (Required) and instead of rollup_index, use target_index as the index to store downsampled data.

  • security.get_api_key and security.query_api_keys add :with_limited_by flag to show the limited-by role descriptors of API Keys.

  • security.get_user adds :with_profile_uid flag to retrieve profile uid (if exists) associated to the user.

  • security.get_user_profile now retrieves user profiles for given unique ID(s). :uid is now a list of comma-separated list of unique identifier for user profiles.

  • text_structure.find_structure adds :ecs_compatibility, optional parameter to specify the compatibility mode with ECS Grok patterns - may be either 'v1' or 'disabled'.

Machine learning APIs promoted from Experimental to Beta:

  • machine_learning.clear_trained_model_deployment_cache.rb
  • machine_learning.infer_trained_model.rb
  • machine_learning.put_trained_model_definition_part.rb
  • machine_learning.put_trained_model_vocabulary.rb
  • machine_learning.start_trained_model_deployment.rb
  • machine_learning.stop_trained_model_deployment.rb

Security usef profile APIs promoted from Experimental to Stable:

  • security/activate_user_profile
  • security/disable_user_profile
  • security/enable_user_profile
  • security/get_user_profile
  • security/has_privileges_user_profile
  • security/suggest_user_profile
  • security/update_user_profile_data

- Ruby
Published by picandocodigo over 3 years ago

https://github.com/elastic/elasticsearch-ruby - 7.17.7

  • Compatibility with Elasticsearch v7.17.7 APIs.
  • Tested versions of Ruby for 7.17.7: Ruby (MRI) 2.6, 2.7, 3.0 and 3.1, JRuby 9.3.

- Ruby
Published by picandocodigo over 3 years ago

https://github.com/elastic/elasticsearch-ruby - 8.4.0

  • Tested versions of Ruby for 8.4.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3.

API

New APIs

  • security.update_api_key - Updates attributes of an existing API key. Documentation.

API Changes

  • get - Adds new parameter force_synthetic_source (Boolean) Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.
  • machine_learning.start_trained_model_deployment - Adds new parameter cache_size (String) A byte-size value for configuring the inference cache size. For example, 20mb.
  • mget - Adds new parameter force_synthetic_source (Boolean) Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.
  • search - Adds new parameter force_synthetic_source (Boolean) Should this request force synthetic _source? Use this to test if the mapping supports synthetic _source and to get a sense of the worst case performance. Fetches with this enabled will be slower the enabling synthetic source natively in the index.
  • snapshot.get - Adds new parameters:
    • sort (String) Allows setting a sort order for the result. Defaults to start_time (options: start_time, duration, name, repository, index_count, shard_count, failed_shard_count).
    • size (Integer) Maximum number of snapshots to return. Defaults to 0 which means return all that match without limit.
    • order (String) Sort order (options: asc, desc).
    • from_sort_value (String) Value of the current sort column at which to start retrieval.
    • after (String) Offset identifier to start pagination from as returned by the 'next' field in the response body.
    • offset (Integer) Numeric offset to start pagination based on the snapshots matching the request. Defaults to 0.
    • slm_policy_filter (String) Filter snapshots by a comma-separated list of SLM policy names that snapshots belong to. Accepts wildcards. Use the special pattern '_none' to match snapshots without an SLM policy.

- Ruby
Published by picandocodigo over 3 years ago

https://github.com/elastic/elasticsearch-ruby - 8.3.0

  • Tested versions of Ruby for 8.3.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3.

API

  • Added build hash to auto generated code. The code generator obtains the git hash from the Elasticsearch specification and adds it as a comment in the code. This allows us to track the version for each generated class.
  • Updated for compatibility with Elasticsearch 8.3's API.

API Changes

  • cluster.delete_voting_config_exclusions, cluster.post_voting_config_exclusions - Add new parameter master_timeout (Time) Timeout for submitting request to master.
  • machine_learning.infer_trained_model_deployment is renamed to machine_learning.infer_trained_model. The url /_ml/trained_models/{model_id}/deployment/_infer is deprecated since 8.3, use /_ml/trained_models/{model_id}/_infer instead.
  • machine_learning.preview_datafeed - Adds new parameters:
    • start (String) The start time from where the datafeed preview should begin
    • end (String) The end time when the datafeed preview should stop
  • machine_learning.start_trained_model_deployment - Adds new parameters:
    • number_of_allocations (Integer) The number of model allocations on each node where the model is deployed.
    • threads_per_allocation (Integer) The number of threads used by each model allocation during inference.
    • queue_capacity (Integer) Controls how many inference requests are allowed in the queue at a time.
  • search_mvt - Adds new parameter: with_labels (Boolean) If true, the hits and aggs layers will contain additional point features with suggested label positions for the original features
  • snapshot.get - Adds new parameter: index_names (Boolean) Whether to include the name of each index in the snapshot. Defaults to true.

New Experimental APIs

  • security.has_privileges_user_profile Determines whether the users associated with the specified profile IDs have all the requested privileges

- Ruby
Published by picandocodigo over 3 years ago

https://github.com/elastic/elasticsearch-ruby - 8.2.2

  • Updates dependency on elastic-transport to ~> 8.0

- Ruby
Published by picandocodigo almost 4 years ago

https://github.com/elastic/elasticsearch-ruby - 8.2.0

Tested versions of Ruby for 8.2.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3.

API

Updated for compatibility with Elasticsearch 8.2's API.

New parameters:

  • field_caps
    • filters An optional set of filters: can include +metadata,-metadata,-nested,-multifield,-parent
    • types Only return results for fields that have one of the types in the list

New APIs:

  • cat.component_templates - Returns information about existing component_templates templates.
  • ml.get_memory_stats - Returns information on how ML is using memory.

New Experimental APIs:

  • security.activate_user_profile - Creates or updates the user profile on behalf of another user.
  • security.disable_user_profile - Disables a user profile so it's not visible in user profile searches.
  • security.enable_user_profile - Enables a user profile so it's visible in user profile searches.
  • security.get_user_profile - Retrieves a user profile for the given unique ID.
  • security.suggest_user_profiles - Get suggestions for user profiles that match specified search criteria.
  • security.update_user_profile_data - Update application specific data for the user profile of the given unique ID.

- Ruby
Published by picandocodigo almost 4 years ago

https://github.com/elastic/elasticsearch-ruby - 8.0.1

API

  • Fixes an issue with the generated API code. When updating the code generator for 8.x, the order of arguments.clone in the generated code was changed. This would make it so that we would modify the parameters passed in before cloning them, which is undesired. Issue: #1727.

- Ruby
Published by picandocodigo almost 4 years ago

https://github.com/elastic/elasticsearch-ruby - 8.1.2

API

  • Fixes an issue with the generated API code. When updating the code generator for 8.x, the order of arguments.clone in the generated code was changed. This would make it so that we would modify the parameters passed in before cloning them, which is undesired. Issue: #1727.

- Ruby
Published by picandocodigo almost 4 years ago

https://github.com/elastic/elasticsearch-ruby - 8.1.0

  • Tested versions of Ruby for 8.1.0: Ruby (MRI) 2.6, 2.7, 3.0 and 3.1, JRuby 9.3.

API

Updated for compatibility with Elasticsearch 8.1's API.

New parameters:

  • indices.forcemerge - wait_for_completion Should the request wait until the force merge is completed.
  • indices.get - features Return only information on specified index features (options: aliases, mappings, settings).
  • ingest.put_pipeline if_version (Integer), required version for optimistic concurrency control for pipeline updates.
  • ml.delete_trained_model - timeout controls the amount of time to wait for the model to be deleted. force (Boolean) true if the model should be forcefully deleted.
  • ml.stop_trained_model_deployment - allow_no_match whether to ignore if a wildcard expression matches no deployments. (This includes _all string or when no deployments have been specified). force true if the deployment should be forcefully stopped. Adds body parameter, the stop deployment parameters.
  • nodes.hot_threads - sort the sort order for 'cpu' type (default: total) (options: cpu, total)

Updated parameters:

  • indices.get_index_template - name is now a String, a pattern that returned template names must match.
  • knn_search - index removes option to use empty string to perform the operation on all indices.
  • ml.close_job, ml.get_job_stats, ml.get_jobs, ml.get_overall_buckets - Remove allow_no_jobs parameter.
  • ml.get_datafeed_stats, ml.get_datafeeds - Remove allow_no_datafeeds parameter.
  • nodes.hot_threads - type parameter adds mem option.
  • nodes.info - metric updated to use _all to retrieve all metrics and _none to retrieve the node identity without any additional metrics. (options: settings, os, process, jvm, thread_pool, transport, http, plugins, ingest, indices, aggregations, _all, _none). index_metric option shards changes to shard_stats.
  • open_point_in_time - keep_alive is now a required parameter.
  • search_mvt - grid_type parameter adds centroid option in addition to grid and point.

New APIs

  • OpenID Connect Authentication: security.oidc_authenticate, security.oidc_logout, security.oidc_prepare_authentication.
  • transform.reset_transform.
  • New experimental APIs, designed for internal use by the fleet server project: fleet.search, fleet.msearch.

- Ruby
Published by picandocodigo almost 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.17.1

  • Improves handling of YAML parsing, uses safe_load instead of load when doing the product verification (should only affect Ruby < 3.0).
  • Updates headers setup when using the Manticore adapter. This fixes an issue where the user-agent header was being foverridden even when it was being set on initialization via the transport options. Pull Request, issue.

- Ruby
Published by picandocodigo about 4 years ago

https://github.com/elastic/elasticsearch-ruby - 8.0.0

8.0.0

First release for the 8.x branch with a few major changes.

  • Tested versions of Ruby for 8.0.0: Ruby (MRI) 2.6, 2.7, 3.0 and 3.1, JRuby 9.3.

Client

Elastic Transport

The code for the dependency elasticsearch-transport has been promoted to its own repository and the project and gem have been renamed to elastic-transport. This gem now powers elasticsearch and elastic-enterprise-search. The elasticsearch-transport gem won't be maintained after the last release in the 7.x branch, in favour of elastic-transport.

This will allow us to better address maintainance in both clients and the library itself.

API

The elasticsearch-api library has been generated based on the Elasticsearch 8.0.0 REST specification.

X-Pack Deprecation

X-Pack has been deprecated. The elasticsearch-xpack gem will no longer be maintained after the last release in the 7.x branch. The "X-Pack" integration library codebase was merged into elasticsearch-api. All the functionality is available from elasticsearch-api. The xpack namespace was removed for accessing any APIs other than _xpack (client.xpack.info) and _xpack/usage (client.xpack.usage). But APIs which were previously available through the xpack namespace e.g.: client.xpack.machine_learning are now only available directly: client.machine_learning.

Parameter checking was removed

The code in elasticsearch-api will no longer validate all the parameters sent. It will only validate the required parameters such as those needed to build the path for the request. But other API parameters are going to be validated by Elasticsearch. This provides better forwards and backwards compatibility in the client.

Response object

In previous versions of the client, calling an API endpoint would return the JSON body of the response. With 8.0, we are returning a new Response object Elasticsearch::API::Response. It still behaves like a Hash to maintain backwards compatibility, but adds the status and headers methods from the Elastic::Transport:Transport::Response object:

elastic_ruby(main)> response = client.info
=> #<Elasticsearch::API::Response:0x000055752b0c50a8
 @response=
  #<Elastic::Transport::Transport::Response:0x000055752b0c50f8
   @body=
    {"name"=>"instance",
     "cluster_name"=>"elasticsearch-8-0-0-SNAPSHOT-rest-test",
     "cluster_uuid"=>"oIfRARuYRGuVYybjxQJ87w",
     "version"=>
      {"number"=>"8.0.0-SNAPSHOT",
       "build_flavor"=>"default",
       "build_type"=>"docker",
       "build_hash"=>"7e23c54eb31cc101d1a4811b9ab9c4fd33ed6a8d",
       "build_date"=>"2021-11-04T00:21:32.464485627Z",
       "build_snapshot"=>true,
       "lucene_version"=>"9.0.0",
       "minimum_wire_compatibility_version"=>"7.16.0",
       "minimum_index_compatibility_version"=>"7.0.0"},
     "tagline"=>"You Know, for Search"},
   @headers={"X-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"567"},
   @status=200>>
elastic_ruby(main)> response.status
=> 200
elastic_ruby(main)> response.headers
=> {"X-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"567"}
elastic_ruby(main)> response['name']
=> "instance"
elastic_ruby(main)> response['tagline']
=> "You Know, for Search"

Please let us know if you find any issues.

- Ruby
Published by picandocodigo about 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.17.0

  • Drops Ruby 2.5 from the test matrix. Support for Ruby 2.5 was dropped March 2021.
  • Updates the product verification when the response is a 413 error.

- Ruby
Published by picandocodigo about 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.16.3

API

Bugfix for #1475, an issue where if you indexed a document with an id such as an id, it would get escaped to an+id instead of an%20id when using index or create. This would result in the document id being an+id instead of the intended value an id.

- Ruby
Published by picandocodigo about 4 years ago

https://github.com/elastic/elasticsearch-ruby - v7.16.1

Patch release corresponding with Elastic Stack version 7.16.1 that addresses the Apache Log4j2 vulnerability, more information.

Client

The only changes in the client since 7.16.0 are a few minor updates for the Compatibility mode with 8.0. We added the compatibility header in 7.13.0, but now we have integration tests and compatibility tests for version 7.x of the client with Elasticsearch 8.0.

- Ruby
Published by picandocodigo about 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.16.0

7.16.0

Client

  • Adds the delay_on_retry parameter, a value in milliseconds to wait between each failed connection, thanks DinoPullerUqido! Pull Request and backport.
  • Adds CA fingerprinting. You can configure the client to only trust certificates that are signed by a specific CA certificate (CA certificate pinning) by providing a ca_fingerprint option. This will verify that the fingerprint of the CA certificate that has signed the certificate of the server matches the supplied value:
ca_fingerprint = '64F2593F...'
client = Elasticsearch::Client.new(
  host: 'https://elastic:changeme@localhost:9200',
  transport_options: { ssl: { verify: false } },
  ca_fingerprint: ca_fingerprint
)

The verification will be run once per connection.

  • Fixes compression. When compression is set to true, the client will now gzip the request body properly and use the appropiate headers. Thanks johnnyshields! Pull Request and backport.

API

Updates

  • Cleaned up some deprecated code.
  • count - The API is documented as using GET, but it supports both GET and POST on the Elasticsearch side. So it was updated to only use POST when there's a body present, or else use GET. Elasticsearch would still accept a body with GET, but to be more semantically correct in the clients we use POST when there's a body.
  • delete_index_template was updated to support the ignore_404 parameter to ignore 404 errors when attempting to delete a non-existing template.
  • ingest.put_pipeline adds new parameter if_version: Required version for optimistic concurrency control for pipeline updates.
  • ml.put_trained_model: adds new parameter defer_definition_decompression: If set to true and a compressed_definition is provided, the request defers definition decompression and skips relevant validations.
  • nodes.hot_threads adds new parameter sort: The sort order for 'cpu' type (default: total) (options: cpu, total).
  • open_point_in_time: keep_alive is now a required parameter.
  • search_mvt: adds new parameter track_total_hits: Indicate if the number of documents that match the query should be tracked. A number can also be specified, to accurately track the total hit count up to the number.
  • transform.preview_transform: adds new parameter transform_id. Body is now optional and the API will use GET or POST depending on the presence of a body.
APIs promoted from experimental to stable since last version:
  • fleet.global_checkpoints
  • get_script_context
  • get_script_language
  • indices.resolve_index
  • monitoring.bulk
  • rank_eval
  • searchable_snapshots.mount
  • searchable_snapshots.stats
  • security.clear_cached_service_tokens
  • security.create_service_token
  • security.delete_service_token
  • security.get_service_accounts
  • security.get_service_credentials
  • shutdown.delete_node
  • shutdown.get_node
  • shutdown.put_node
  • terms_enum

New APIs

  • fleet.mseach
  • fleet.search
  • indices.modify_data_stream
  • ml.infer_trained_model_deployment
  • ml.start_trained_model_deployment
  • ml.stop_trained_model_deployment
  • migration.get_feature_upgrade_status
  • migration.post_feature_upgrade_status
  • security.enroll_kibana
  • security.enroll_node
  • transform.updgrade_transforms

- Ruby
Published by picandocodigo about 4 years ago

https://github.com/elastic/elasticsearch-ruby - 8.0.0.pre1

First pre-release of elasticsearch 8.x 🥳

Client

Elastic Transport

The code for the dependency elasticsearch-transport has been promoted to its own repository and the project and gem have been renamed to elastic-transport. This gem now powers elasticsearch and elastic-enterprise-search. The elasticsearch-transport gem won't be maintained after the last release in the 7.x branch, in favour of elastic-transport.

API

X-Pack Deprecation

X-Pack has been deprecated. The elasticsearch-xpack gem will no longer be maintained after the last release in the 7.x branch. The "X-Pack" integration library codebase was merged into elasticsearch-api. All the functionality is available from elasticsearch-api. The xpack namespace was removed for accessing any APIs other than _xpack (client.xpack.info) and _xpack/usage (client.xpack.usage). But APIs which were previously available through the xpack namespace e.g.: client.xpack.machine_learning are now only available directly: client.machine_learning.

Parameter checking was removed

The code in elasticsearch-api will no longer validate all the parameters sent. It will only validate the required parameters such as those needed to build the path for the request. But other API parameters are going to be validated by Elasticsearch. This provides better forwards and backwards compatibility in the client.

Response object

In previous versions of the client, calling an API endpoint would return the JSON body of the response. With 8.0, we are returning a new Response object Elasticsearch::API::Response. It still behaves like a Hash to maintain backwards compatibility, but adds the status and headers methods from the Elastic::Transport:Transport::Response object:

elastic_ruby(main)> response = client.info
=> #<Elasticsearch::API::Response:0x000055752b0c50a8
 @response=
  #<Elastic::Transport::Transport::Response:0x000055752b0c50f8
   @body=
    {"name"=>"instance",
     "cluster_name"=>"elasticsearch-8-0-0-SNAPSHOT-rest-test",
     "cluster_uuid"=>"oIfRARuYRGuVYybjxQJ87w",
     "version"=>
      {"number"=>"8.0.0-SNAPSHOT",
       "build_flavor"=>"default",
       "build_type"=>"docker",
       "build_hash"=>"7e23c54eb31cc101d1a4811b9ab9c4fd33ed6a8d",
       "build_date"=>"2021-11-04T00:21:32.464485627Z",
       "build_snapshot"=>true,
       "lucene_version"=>"9.0.0",
       "minimum_wire_compatibility_version"=>"7.16.0",
       "minimum_index_compatibility_version"=>"7.0.0"},
     "tagline"=>"You Know, for Search"},
   @headers={"X-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"567"},
   @status=200>>
elastic_ruby(main)> response.status
=> 200
elastic_ruby(main)> response.headers
=> {"X-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"567"}
elastic_ruby(main)> response['name']
=> "instance"
elastic_ruby(main)> response['tagline']
=> "You Know, for Search"

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.15.0

7.15.0

Client

  • Compatibility with Elasticsearch v7.15.0 APIs.
  • We've tested and added documentation on best practices for leveraging the client in a Function-as-a-Service (FaaS) environment to the official docs.

API

  • New experimental endpoints: indices.disk_usage. indices.field_usage_stats, nodes.clear_repositories_metering_archive, get_repositories_metering_info, search_mvt
  • The index parameter is now required for open_point_in_time.
  • The index_metric parameter in nodes.stats adds the shards option.

X-Pack

  • New parameters for ml.put_job: ignore_unavailable, allow_no_indices, ignore_throttled, expand_wildcards.
  • New endpoint: security.query_api_keys.

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.14.1

Client

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.14.1.pre

This is a pre-release of 7.14.1.

Client

  • Updates Manticore implementation to keep headers from initialization, fixes a bug introduced in 7.2. Commit

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.14.0

Client

Added check that client is connected to an Elasticsearch cluster. If the client isn't connected to a supported Elasticsearch cluster the UnsupportedProductError exception will be raised.

This release changes the way in which the transport layer and the client interact. Previously, when using elasticsearch-transport, Elasticsearch::Transport::Client had a convenient wrapper, so it could be used as Elasticsearch::Client. Now, we are decoupling the transport layer from the Elasticsearch client. If you're using the elasticsearch gem, not much will change. It will instantiate a new Elasticsearch::Transport::Client when you instantiate Elasticsearch::Client and the endpoints from elasticsearch-api will be available.

Elasticsearch::Client has an attr_accessor for the transport instance:

> client = Elasticsearch::Client.new
> client.transport.class
=> Elasticsearch::Transport::Client
> client.transport.transport.class
=> Elasticsearch::Transport::Transport::HTTP::Faraday

The interaction with elasticsearch-api remains unchanged. You can use the API endpoints just like before:

> client.info
=> {"name"=>"instance",
 "cluster_name"=>"elasticsearch",
 "cluster_uuid"=>"id",
 "version"=>
  {"number"=>"7.14.0",
  ...
},
 "tagline"=>"You Know, for Search"}

Or perform request directly from the client which will return an Elasticsearch::Transport::Response object:

> client.perform_request('GET', '/')
# This is the same as doing client.transport.perform_request('GET', '/')
=> #<Elasticsearch::Transport::Transport::Response:0x000055c80bf94bc8
 @body=
  {"name"=>"instance",
   "cluster_name"=>"elasticsearch",
   "cluster_uuid"=>"id",
   "version"=>
    {"number"=>"7.14.0-SNAPSHOT",
    ...
    },
   "tagline"=>"You Know, for Search"},
 @headers=
  {"content-type"=>"application/json; charset=UTF-8",
   "content-length"=>"571",
   ...
   },
 @status=200>

If you have any problems, please report them in this issue.

API

Code is now generated from Elastic artifacts instead of checked out code of Elasticsearch. See the Generator README for more info.

  • Endpoints msearch, msearch_template and search_template remove query_and_fetch and dfs_query_and_fetch options from the search_type parameter.
  • New parameter include_repository in snapshot.get: (boolean) Whether to include the repository name in the snapshot info. Defaults to true.

X-Pack

X-Pack is being deprecated. The first time using xpack on the client, a warning will be triggered. Please check this issue for more information.

  • New endpoints: index_lifecycle_management.migrate_to_data_tiers, machine_learning.reset_job, security.saml_authenticate, security.saml_complete_logout, security.saml_invalidate, security.saml_logout, security.saml_prepare_authentication, security.saml_service_provider_metadata, sql.delete_async, sql.get_async, sql.get_async_status, terms_enum.
  • New experimental endpoints: machine_learning.infer_trained_model_deployment, machine_learning.start_trained_model_deployment, machine_learning.stop_trained_model_deployment.
  • Deprecation: indices.freeze and indices.unfreeze: Frozen indices are deprecated because they provide no benefit given improvements in heap memory utilization. They will be removed in a future release.

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby -

This is a pre-release, but there are some important changes coming in version 7.14.0 of the client:

Client

This release changes the way in which the transport layer and the client interact. Previously, when using elasticsearch-transport, Elasticsearch::Transport::Client had a convenient wrapper, so it could be used as Elasticsearch::Client. Now, we are decoupling the transport layer from the Elasticsearch client. If you're using the elasticsearch gem, not much will change. It will instantiate a new Elasticsearch::Transport::Client when you instantiate Elasticsearch::Client and the endpoints from elasticsearch-api will be available.

Elasticsearch::Client has an attr_accessor for the transport instance:

> client = Elasticsearch::Client.new
> client.transport.class
=> Elasticsearch::Transport::Client
> client.transport.transport.class
=> Elasticsearch::Transport::Transport::HTTP::Faraday

The interaction with elasticsearch-api remains unchanged. You can use the API endpoints just like before:

> client.info
=> {"name"=>"instance",
 "cluster_name"=>"elasticsearch",
 "cluster_uuid"=>"id",
 "version"=>
  {"number"=>"7.14.0",
  ...
},
 "tagline"=>"You Know, for Search"}

Or perform request directly from the client which will return an Elasticsearch::Transport::Response object:

> client.perform_request('GET', '/')
# This is the same as doing client.transport.perform_request('GET', '/')
=> #<Elasticsearch::Transport::Transport::Response:0x000055c80bf94bc8
 @body=
  {"name"=>"instance",
   "cluster_name"=>"elasticsearch",
   "cluster_uuid"=>"id",
   "version"=>
    {"number"=>"7.14.0-SNAPSHOT",
    ...
    },
   "tagline"=>"You Know, for Search"},
 @headers=
  {"content-type"=>"application/json; charset=UTF-8",
   "content-length"=>"571",
   ...
   },
 @status=200>

If you have any problems, please report them in this issue.

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.13.3

  • API Support for Elasticsearch version 7.13.3

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby - DSL v0.1.10

  • Adds auto_generate_synonyms_phrase_query (@andreasklinger) (3587ebe4dcecedd1f5e09adce4ddcf6cb163e9fa)
  • Adds minimum_should_match option to bool filters (@MothOnMars) (c127661f368970ad9158706b6c6134462524af56)
  • Adds support for calendar_interval to DateHistogram (@tmaier) (a3214c57ee876432a165f3e75f95a947a28d1484)
  • Removes auto_generate_phrase_queries deprecated parameter (850eabaff268eacbce6179e76fb9d34f271bc586)
  • Removes deprecated interval parameter (6b2e3bac39cf520d52adc17aee696fb7fa1de77a)
  • Use pry-byebug for MRI and pry-nav for JRuby
  • Improves running tests (default value for cluster set to http://localhost:9200)

- Ruby
Published by picandocodigo over 4 years ago

https://github.com/elastic/elasticsearch-ruby - 7.13.1

Client

  • Support for Elasticsearch version 7.13.1
  • Fixes thread safety issue in get_connection - [https://github.com/elastic/elasticsearch-ruby/pull/1325](Pull Request).

- Ruby
Published by picandocodigo almost 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.13.0

Client

  • Support for Elasticsearch version 7.13.0
  • Adds support for compatibility header for Elasticsearch. If the environment variable 'ELASTIC_CLIENT_APIVERSIONING' is set to true or 1, the client will send the headers Accept and Content-Type with the following value: application/vnd.elasticsearch+json;compatible-with=7.
  • Better detection of Elasticsearch and Enterprise Search clients in the meta header used by cloud.

API

  • The REST API tests now use an artifact downloaded from the Elastic servers instead of depending of cloning elasticsearch locally. Check the README for more information.
  • New parameter include_unloaded_segments in cat.nodes, nodes.stats: If set to true segment stats will include stats for segments that are not currently loaded into memory
  • New parameter summary in ingest.get_pipeline: Return pipelines without their definitions (default: false)
  • New parameter index_details in snapshot.get: Whether to include details of each index in the snapshot, if those details are available. Defaults to false.
  • New endpoint features.reset_features, ingest/geo_ip_stats
  • New experimental endpoints: shutdown.delete_node, shutdown.get_node, shutdown.put_node.

X-Pack

  • Refactored test tasks, made it easier to run the tests by default.
  • New experimental endpoints: fleet.global_checkpoints, searchable_snapshots.cache_stats.
  • New beta endpoints: security.clear_cached_service_tokens, security.create_service_token, security.delete_service_token, security.get_service_accounts, security.get_service_credentials
  • New endpoints: machine_learning.delete_trained_model_alias, machine_learning.preview_data_frame_analytics, machine_learning.put_trained_model_alias.
  • APIs migrated from experimental or beta to stable: machine_learning.delete_data_frame_analytics, machine_learning.delete_trained_model, machine_learning.estimate_model_memory, machine_learning.explain_data_frame_analytics, machine_learning.get_data_frame_analytics, machine_learning.get_data_frame_analytics_stats, machine_learning.get_trained_models, machine_learning.get_trained_models_stats, machine_learning.put_data_frame_analytics, machine_learning.put_trained_model, machine_learning.start_data_frame_analytics, machine_learning.stop_data_frame_analytics, machine_learning.update_data_frame_analytics
  • New parameter body in machine_learning.preview_datafeed: The datafeed config and job config with which to execute the preview.

- Ruby
Published by picandocodigo almost 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.13.0.pre

-Support for Elasticsearch version 7.13.0
-This is a pre-release, full Changelog details will be published with the final release of 7.13.0

- Ruby
Published by picandocodigo almost 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.12.0

7.12.0

Client

  • Support for Elasticsearch version 7.12.0
  • Ruby 3 is now tested, it was added to the entire test suite.
  • New official documentation pages for configuration: Basic Configuration and Advanced Configuration.
  • Integration tests runner refactored to keep skipped tests in a yaml file.

API

  • New API namespace: features and endpoints features.get_features and snapshot.get_features.
  • cat.plugins adds parameter include_bootstrap: Include bootstrap plugins in the response.
  • Update in indices.close parameter wait_for_active_shards: Sets the number of active shards to wait for before the operation returns. Set to index-setting to wait according to the index setting index.write.wait_for_active_shards, or all to wait for all shards, or an integer. Defaults to 0.
  • actions.search adds parameter min_compatible_shard_node: The minimum compatible version that all shards involved in search should have for this request to be successful.

X-Pack

  • New API namespace: text_structure and endpoints text_structure.find_structure.
  • New API namespace: logstash and endpoints logstash.delete_pipeline, logstash.get_pipeline, logstash.put_pipeline.
  • New API: eql.get_status.
  • APIs migrated from experimental to stable: autoscaling.delete_autoscaling_policy, autoscaling.get_autoscaling_capacity, autoscaling.get_autoscaling_policy, autoscaling.put_autoscaling_policy.
  • searchable_snapshots.mount adds parameter storage: Selects the kind of local storage used to accelerate searches. Experimental, and defaults to full_copy.
  • searchable_snapshots.stats adds parameter level: Return stats aggregated at cluster, index or shard level (options: cluster, indices, shards).

- Ruby
Published by picandocodigo almost 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.11.2

7.11.2

Client

  • Bug fix in meta header, fixes fail when http adapter library hasn't been loaded yet: Issue.

- Ruby
Published by picandocodigo about 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.11.1

Client

  • Bug fix in meta header, adds support for unknown Faraday adapters. Pull Request.

- Ruby
Published by picandocodigo about 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.11.0

7.11.0

Client

  • Fixes a bug with headers in our default Faraday class. Commit.
  • Adds the X-Elastic-Client-Meta HTTP header which is used by Elastic Cloud and can be disabled with the enable_meta_header parameter set to false.

API

API Changes

  • cat.tasks - Parameter node_id changes name to nodes, a comma-separated list of node IDS or names. Parameter parent_task changes name to parent_task_id.
  • APIs that are no longer experimental: cluster.delete_component_template, cluster.exists_component_template, cluster.get_component_template, cluster.put_component_template, indices.delete_index_template, indices.exists_index_template, indices.get_index_template, indices.put_index_template, indices.simulate_index_template, indices.simulate_template.
  • Deprecation notice: The _upgrade API is no longer useful and will be removed. Instead, see _reindex API. Deprecated since version 8.0.0. Endpoints: indices.get_upgrade, indices.upgrade

X-Pack

  • New endpoints:async_search.status, autoscaling.get_autoscaling_capacity (experimental), indices.migrate_to_data_stream, indices.promote_data_stream, machine_learning.upgrade_job_snapshot, rollup.rollup, watcher.query_watches.
  • APIs that are no longer experimental: eql.delete, eql.get, eql.search,
  • APIs promoted from experimental to beta: machine_learning.delete_data_frame_analytics, ml.delete_trained_model, machine_learning.evaluate_data_frame, machine_learning.explain_data_frame_analytics, machine_learning.get_data_frame_analytics, machine_learning.get_datafeed_stats, machine_learning.get_trained_models, machine_learning.get_trained_models_stats, machine_learning.put_data_frame_analytics, machine_learning.put_trained_model, machine_learning.start_data_frame_analytics, machine_learning.stop_data_frame_analytics, machine_learning.update_data_frame_analytics
  • indices.delete_data_stream, indices.get_data_stream add parameter expand_wildcards, wether wildcard expressions should get expanded to open or closed indices (default: open). Options: open, closed, hidden, none, all.
  • machine_learning.get_data_frame_analytics, machine_learning.get_datafeeds, machine_learning.get_jobs, machine_learning.get_trained_models, transform.get_transform add parameter exclude_generated - omits fields that are illegal to set on PUT.
  • data_frame_transform_deprecated.get_transform (_data_frame/transforms/ is deprecated, use _transform/ in the future) adds parameter exclude_generated - omits generated files.

- Ruby
Published by picandocodigo about 5 years ago

https://github.com/elastic/elasticsearch-ruby - 6.8.3

6.8.3

Client

  • Adds Typhoeus 1.4, now compatible with Faraday 1.0
  • Converts all argument keys to symbol in Client initializer
  • Adds the X-Elastic-Client-Meta HTTP header which is used by Elastic Cloud and can be disabled with the enable_meta_header parameter set to false.

- Ruby
Published by picandocodigo about 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.11.0.pre.1

-Support for Elasticsearch version 7.11.0
-This is a pre-release, full Changelog details will be published with the final release of 7.11.0

- Ruby
Published by picandocodigo about 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.10.1

Client

  • Use 443 for default cloud port, 9200 as the default port for http

- Ruby
Published by picandocodigo about 5 years ago

https://github.com/elastic/elasticsearch-ruby - EXT:0.0.33

New release of elasticsearch-extensions:

  • Fixes a bug where clusters failed to start with "unknown setting [xpack.security.enabled]" when running elasticsearch-oss. More details on the issue (commit).

- Ruby
Published by picandocodigo about 5 years ago

https://github.com/elastic/elasticsearch-ruby - EXT:0.0.32

New release of elasticsearch-extensions:

  • Fixes parsing Elasticsearch version when a major, minor or patch have more than 1 digit (e.g. 7.10.0) (commit).
  • Changes the key of the parameter of Reindex from target to dest by @tetsuya-ogawa (commit).
  • Fixes test cluster clear_cluster option by @Lajcisvk (commit).
  • Sanitizes filename in the backup extension (commit).
  • Adds 8.0.0 to cluster tasks (commit).

- Ruby
Published by picandocodigo over 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.10.0

Client

  • Support for Elasticsearch version 7.10.0.
  • Fixes a bug when building the complete endpoint URL could end with duplicate slashes //.
  • Fixes a bug when building the complete endpoint URL with cloud id could end with duplicate ports #1081.

API

  • Fix in RubyDoc comments, some parameters were being duplicated.
  • Deprecation notice: Synced flush (indices.flush_synced) is deprecated and will be removed in 8.0. Use flush instead.

New API Endpoints

  • snapshot.clone

API Changes

  • bulk, index, update: new parameter require_alias (boolean): When true, requires destination to be an alias (default: false) for index and update. For bulk it sets require_alias for all incoming documents. Defaults to unset (false).

X-Pack

Deprecation notice: searchable_snapshots.repository_stats is deprecated and is replaced by the Repositories Metering API.

New API Endpoints

  • close_point_in_time
  • open_point_in_time
  • security.clear_api_key_cache
  • security.grant_api_key

API Changes

  • cat.ml_datafeeds, cat.ml_jobs, machine_learning.close_job, machine_learning.get_datafeed_stats, machine_learning.get_datafeeds, machine_learning.get_job_stats, machine_learning.get_jobs, machine_learning.get_overall_buckets, machine_learning.stop_datafeed: new parameter allow_no_match (boolean): Whether to ignore if a wildcard expression matches no datafeeds. (This includes _all string or when no datafeeds have been specified)
    -machine_learning.get_data_frame_analytics: new parameter verbose (boolean), whether the stats response should be verbose
  • machine_learning.get_trained_models: new parameter include (string), a comma-separate list of fields to optionally include. Valid options are 'definition' and 'total_feature_importance'. Default is none.
  • machine_learning.stop_datafeed: endpoint now accepts a body: the URL params optionally sent in the body
  • security.get_role, security/get_role_mapping: The name parameter is now a comma-separated list of role-mapping names
  • machine_learning.delete_trained_model, machine_learning.get_trained_models, machine_learning.get_trained_models_stats, machine_learning.put_trained_model: Internal change, url changed from _ml/inference to _ml/trained_models

- Ruby
Published by picandocodigo over 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.10.0.pre

-Support for Elasticsearch version 7.10.0
-This is a pre-release, full Changelog details will be published with the final release of 7.10.0

- Ruby
Published by picandocodigo over 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.9.0

7.9.0

Client

API

  • Documentation for API endpoints will point out when an API is experimental, beta or unstable.

New API Endpoints

  • New namespace: dangling_indices
  • dangling_indices.delete_dangling_index
  • dangling_indices.import_dangling_index
  • dangling_indices.list_dangling_indices
  • indices.add_block

Experimental endpoints:

  • indices.resolve_index
  • simulate_template

API Changes

  • field_caps: adds body parameter allowing to filter indices if index_filter is provided.
  • eql.search: new parameters wait_for_completion, keep_on_completion and keep_alive.
  • info: New parameter accept_enterprise: If an enterprise license is installed, return the type and mode as 'enterprise' (default: false).
  • indices.put_mapping: new parameter write_index_only.

X-Pack

New API Endpoints

The Ruby client now supports all the X-Pack API endpoints.

  • New namespace autoscaling: autoscaling.delete_autoscaling_policy, autoscaling.get_autoscaling_decision, autoscaling.get_autoscaling_policy, autoscaling.put_autoscaling_policy
  • New namespace enrich: enrich.delete_policy, enrich.execute_policy, enrich.get_policy, enrich.put_policy, enrich.stats
  • New namespace eql: eql.delete, eql.get, eql.search
  • New namespace cross_cluster_replication: cross_cluster_replication.delete_auto_follow_pattern, cross_cluster_replication.follow, cross_cluster_replication.follow_info, cross_cluster_replication.follow_stats, cross_cluster_replication.forget_follower, cross_cluster_replication.get_auto_follow_pattern, cross_cluster_replication.pause_auto_follow_pattern, cross_cluster_replication.pause_follow, cross_cluster_replication.put_auto_follow_pattern, cross_cluster_replication.resume_auto_follow_pattern, cross_cluster_replication.resume_follow, cross_cluster_replication.stats, cross_cluster_replication.unfollow
  • New namespace snapshot_lifecycle_management: snapshot_lifecycle_management.delete_lifecycle, snapshot_lifecycle_management.execute_lifecycle, snapshot_lifecycle_management.execute_retention, snapshot_lifecycle_management.get_lifecycle, snapshot_lifecycle_management.get_stats, snapshot_lifecycle_management.get_status, snapshot_lifecycle_management.put_lifecycle, snapshot_lifecycle_management.start, snapshot_lifecycle_management.stop
  • indices.create_data_stream
  • indices.data_streams_stats
  • indices.delete_data_stream
  • indices.get_data_stream
  • security.clear_cached_privileges
  • machine_learning.update_data_frame_analytics

API Changes

  • machine_learning.delete_expired_data: new parameters job_id, requests_per_second and timeout

- Ruby
Published by picandocodigo over 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.8.1

Client

  • Support for Elasticsearch version 7.8.1.
  • Bug fix: Fixed a bug on the API endpoints documentation for RubyDocs: there was an unnecessary empty new line in the documentation for parameters that have options. So the parameters before that empty newline were not being documented in RubyDocs.

X-Pack

API Changes

  • Update to info endpoint. New parameter accept_enterprise (boolean): If an enterprise license is installed, return the type and mode as 'enterprise' (default: false).

- Ruby
Published by picandocodigo over 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.9.0.pre

  • Support for Elasticsearch version 7.9
  • This is a pre-release, full Changelog details will be published with the final release of 7.9.0

- Ruby
Published by picandocodigo over 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.8.0

Client

  • Support for Elasticsearch version 7.8.
  • Surface deprecation headers from Elasticsearch. When there's a warning response header in Elasticsearch's response, the client will emit a warning with warn.
  • Typhoeus is supported again, version 1.4+ and has been added back to the docs.
  • Adds documentation and example for integrating with Elastic APM.

API

New API Endpoints

  • abort_benchmark
  • benchmark
  • cluster.delete_voting_config_exclusions
  • cluster.post_voting_config_exclusions
  • delete_by_rethrottle
  • nodes.shutdown
  • remote.info

Experimental endpoints:

  • cluster.delete_component_template

  • cluster.exists_component_template

  • cluster.get_component_template

  • cluster.put_component_template

  • indices.delete_index_template

  • indices.exists_index_template

  • indices.get_index_template

  • indices.put_index_template

  • indices.simulate_index_template

API Changes

  • cat/thread_pool: size is deprecated.
  • indices.get_data_streams: name is now a string instead of list, the name or wildcard expression of the requested data streams.
  • indices.put_index_template: new parameter: cause (string), user defined reason for creating/updating the index template.
  • indices.simulate_index_template: Two new parameters: create, whether the index template we optionally defined in the body should only be dry-run added if new or can also replace an existing one. cause User defined reason for dry-run creating the new template for simulation purposes.
  • snapshot.delete_repository: New parameter repository, name of the snapshot repository, wildcard (*) patterns are now supported.
  • task.cancel: new parameter wait_for_completion (boolean) Should the request block until the cancellation of the task and its descendant tasks is completed. Defaults to false.

X-Pack

New API Endpoints

New namespace: indices

  • indices.freeze
  • indices.reload_search_analyzers
  • indices.unfreeze

New namespace: searchable_snapshots

  • clear_cache
  • mount
  • repository_stats
  • stats

API Changes

  • machine_learning.delete_expired_data new param body: deleting expired data parameters.
  • machine_learning.delete_data_frame_analytics new param timeout: controls the time to wait until a job is deleted. Defaults to 1 minute.

- Ruby
Published by picandocodigo over 5 years ago

https://github.com/elastic/elasticsearch-ruby - 7.8.0.pre

  • Support for Elasticsearch version 7.8
  • This is a pre-release, full Changelog details will be published with the final release of 7.8.0

- Ruby
Published by picandocodigo almost 6 years ago

https://github.com/elastic/elasticsearch-ruby -

7.7.0

This version drops support for Ruby 2.4 since it's reached it's end of life.

Client

  • Support for Elasticsearch version 7.7

Custom Headers

You can set custom HTTP headers on the client's initializer or pass them as a parameter to any API endpoint. More info and code examples.

API

API Changes

  • Clean: Removes up some deprecated endpoints: abort_benchmark, benchmark, delete_by_rethrottle, nodes.shutdown, remote.info.
  • expand_wildcards Whether to expand wildcard expressions to concrete indices that are open, closed or both. Options: open, closed, hidden, none, all. hidden option is new. It was also added to the following endpoints: cat.aliases, cat.indices.
  • delete_by_query: Parameter slices can now be set to auto.
  • reindex: Parameter slices can now be set to auto.
  • update_by_query: Parameter slices can now be set to auto.
  • snapshot.cleanup_repository: Parameter body is removed.

New API Endpoints

  • cluster.delete_component_template
  • cluster.get_component_template
  • cluster.put_component_template
  • indices.create_data_stream (experimental)
  • indices.delete_data_stream (experimental)
  • indices.get_data_stream (experimental)

X-Pack

API Changes

  • machine_learing.get_trained_models: New parameter tags
  • machine_learning.put_datafeed, machine_learning.update_datafeed: Added parameters ignore_unavailable, allow_no_indices, ignore_throttled, expand_wildcards
  • reload_secure_settings: New parameter body, an object containing the password for the keystore.

New API Endpoints

  • async_search.delete
  • async_search.get
  • async_search.submit
  • cat.ml_data_frame_analytics
  • cat.ml_datafeeds
  • cat.ml_jobs
  • cat.ml_trained_models
  • cat.transform
  • cat.transforms
  • machine_learning.estimate_model_memory
  • transform.delete_transform
  • transform.get_transform
  • transform.get_transform_stats
  • transform.preview_transform
  • transform.put_transform
  • transform.start_transform
  • transform.stop_transform
  • transform.update_transform

- Ruby
Published by picandocodigo almost 6 years ago

https://github.com/elastic/elasticsearch-ruby - 6.8.2

Client

API Key Support

The client now supports API Key Authentication, check "Authentication" on the transport README for information on how to use it.

X-Opaque-Id Support

The client now supports identifying running tasks with X-Opaque-Id. Check transport README for information on how to use X-Opaque-Id.

Faraday migrated to 1.0

We're now using version 1.0 of Faraday:

  • The client initializer was modified but this should not disrupt final users at all, check this commit for more information.
  • Migrated error checking to remove the deprecated Faraday::Error namespace.
  • This change is not compatible with Typhoeus. The latest release is 1.3.1, but it's still using the deprecated Faraday::Error namespace. This has been fixed on master, but the last release was November 6, 2018. Version 1.4.0 should be ok once it's released.
  • Note: Faraday 1.0 drops official support for JRuby. It installs fine on the tests we run with JRuby in this repo, but it's something we should pay attention to.

Reference: Upgrading - Faraday 1.0

Pull Request

API

- Ruby
Published by picandocodigo almost 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.7.0.pre

  • Support for Elasticsearch version 7.7
  • This is a pre-release, full Changelog details will be published with the final release of 7.7.0

- Ruby
Published by picandocodigo almost 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.6.0

Client

  • Support for Elasticsearch version 7.6.
  • Last release supporting Ruby 2.4. Ruby 2.4 has reached it's end of life and no more security updates will be provided, users are suggested to update to a newer version of Ruby.

API Key Support

The client now supports API Key Authentication, check "Authentication" on the transport README for information on how to use it.

X-Opaque-Id Support

The client now supports identifying running tasks with X-Opaque-Id. Check transport README for information on how to use X-Opaque-Id.

Faraday migrated to 1.0

We're now using version 1.0 of Faraday:

  • The client initializer was modified but this should not disrupt final users at all, check this commit for more information.
  • Migrated error checking to remove the deprecated Faraday::Error namespace.
  • This change is not compatible with Typhoeus. The latest release is 1.3.1, but it's still using the deprecated Faraday::Error namespace. This has been fixed on master, but the last release was November 6, 2018. Version 1.4.0 should be ok once it's released.
  • Note: Faraday 1.0 drops official support for JRuby. It installs fine on the tests we run with JRuby in this repo, but it's something we should pay attention to.

Reference: Upgrading - Faraday 1.0

Pull Request

API

API Changes:

  • cat.indices: argument bytes options were: b,k,m,g and are now b,k,kb,m,mb,g,gb,t,tb,p,pb.
  • delete_by_query: New parameter analyzer - The analyzer to use for the query string.
  • indices.put_template: Removed parameters: timeout, flat_settings.
  • msearch_template: New Parameter ccs_minimize_roundtrips - Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution.
  • rank_eval: New parameter search_type - Search operation type (options: query_then_fetch,dfs_query_then_fetch).
  • search_template: New parameter ccs_minimize_roundtrips - Indicates whether network round-trips should be minimized as part of cross-cluster search requests execution.

New API endpoints:

  • get_script_context
  • get_script_languages

Warnings:

Synced flush is deprecated and will be removed in 8.0.

X-Pack

New API endpoints:

  • ml/delete_trained_model
  • ml/explain_data_frame_analytics
  • ml/get_trained_models
  • ml/get_trained_models_stats
  • ml/put_trained_model

API changes:

  • license/get: Added parameter accept_enterprise.
  • ml/delete_data_frame_analytics Added parameter force.
  • monitoring/bulk - Removed parameter system_version.

- Ruby
Published by picandocodigo almost 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.6.0.pre

Pre-release version of 7.6 client.

  • Support for Elasticsearch version 7.6.
  • New features: API Key Support, X-Opaque-Id and Faraday 1.0.
  • This is a pre-release, full Changelog details will be published with the final release of 7.6.0

- Ruby
Published by picandocodigo almost 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.5.0

  • Support for Elasticsearch 7.5.
  • Update API spec generator: The code for Elasticsearch OSS and X-Pack APIs is being generated from the rest api spec.
  • Specs have been updated to address new/deprecated parameters.
  • Ruby versions tested: 2.3.8, 2.4.9, 2.5.7, 2.6.5 and 2.7.0 (new).

API

Endpoints that changed:

  • _bulk: body is now required as an argument.
  • cat: local and master_timeout parameters are gone.
    • health: New parameter health.
    • indices: Adds time and include_unload_segments parameters.
    • nodes: Adds bytes, time parameters.
    • pending_tasks: Adds time parameter.
    • recovery: Adds active_only, detailed, index, time parameters.
    • segments: Removes index parameter and it's now a url part.
    • shards: Adds time parameter.
    • snapshots: Adds time parameter.
    • tasks: Adds time parameter.
    • templates: The name parameter is now passed in as a part but not a parameter.
    • thread_pool: The thread_pool_patterns parameter is now passed in as a part but not as a parameter.
  • cluster
    • put_settings: body is required.
    • state: index_templates is gone.
    • node_id is now a url part.
  • delete - parent parameter is gone.
  • delete_by_query: analyzer parameters are gone, max_docs is a new parameter, body is now a required parameter.
  • delete_by_query_rethrottle new endpoint.
  • delete_by_rethrottle - uses delete_by_query_rethrottle and hasn't changed.
  • exists, exists_source, explain: parent parameter is gone.
  • field_caps: fields param is no longer required.
  • get: parent parameter is gone
  • get_source: parent parameter is gone
  • index: body parameter is required, wait_for_shard is a new parameter, consistency, include_type_name, parent, percolate, replication, timestamp, ttl parameters are gone
  • indices
    • get: feature paramatere was deprecated and is gone.
    • delete_aliases, put_alias: URL changed internally to 'aliases' instead of 'alias' but shouldn't affect the client's API.
  • render_search_template: id is now a part not a parameter
  • search: fielddata_fields, include_type_name, fields, ignore_indices, lowercase_expanded_terms, query_cache, source parameters are gone, ccs_minimize_roundtrips, track_scores are new parameters.
  • tasks - list: task_id is not supported anymore, it's in get now.
  • termvectors: parent parameter is gone.
  • update: version parameter is not supported anymore.

X-PACK

Some urls changed internally to remove _xpack, but it shouldn't affect the client's API.

  • explore: index is now required.
  • info: human parameter is gone.
  • migration: some endpoints are gone: get_assistance, get_assistance_test and upgrade_test.
  • watcher: restart endpoint is gone.

- Ruby
Published by picandocodigo about 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.5.0-pre

Pre-release version of 7.5 client.

  • Support for Elasticsearch 7.5.
  • Update API spec generator: The code for Elasticsearch OSS and X-Pack APIs is being generated from the rest api spec.
  • Specs have been updated to address new/deprecated parameters.
  • This is a pre-release, full Changelog details will be published with the final release of 7.5.0

- Ruby
Published by picandocodigo about 6 years ago

https://github.com/elastic/elasticsearch-ruby - 6.8.1

  • Lock the version of Faraday: Faraday 1.0 was released with breaking changes. Thank you @taylorthurlow 👍 (#752)
  • Add support for Ruby 2.7
  • 6.x releases are now tested in the latests Ruby versions: 2.4.9, 2.5.7, 2.6.5 and 2.7.0
  • Fix bad range value error

- Ruby
Published by picandocodigo about 6 years ago

https://github.com/elastic/elasticsearch-ruby - DSL v0.1.9

DSL

  • add track_total_hits option (@andreasklinger)

- Ruby
Published by estolfo over 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.4.0

This version supports Elasticsearch version 7.4.0

Client

  • Accept options passed to #perform_request to avoid infinite retry loop
  • Fix minor typo

API

  • Update documentation of put_script method

XPACK

  • Add ParamsRegistry in each direcotry and for Xpack top-level API
  • Add ParamsRegistry for Xpack data_frame API
  • Add ParamsRegistry for Xpack graph API
  • Add ParamsRegistry for Xpack license API
  • Add ParamsRegistry for Xpack MachineLearning API
  • Fix path for loading params_registry files
  • Add ParamsRegistry for Xpack Migration API
  • Add ParamsRegistry for Xpack Monitoring API
  • Add ParamsRegistry for Xpack Rollup API
  • Add ParamsRegistry for Xpack security API
  • Add ParamsRegistry for Xpack sql API
  • Add ParamsRegistry for Xpack watcher API
  • Update missed file with ParamsRegistry
  • Update versions in params registry files
  • Add update_data_frame_transform
  • Support Index Lifecycle Management(ILM) API

- Ruby
Published by estolfo over 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.3.0

This version supports Elasticsearch server version 7.3.0.
It has the following changes:

Client

  • Add note to readme about the default port value
  • Add note about exception to default port rule when connecting using Elastic Cloud ID
  • Cluster name is variable in cloud id

XPACK

  • Support allow_no_match parameter in stop_data_frame_transform
  • Add allow_no_match to get_data_frame_transform API
  • Add missing headers
  • Support get_builtin_privileges API
  • Update tests for changed xpack paths
  • test:integration task in xpack gem shouldn't do anything in favor of test:rest_api

- Ruby
Published by estolfo over 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.2.1

This release has a single change:

- Ruby
Published by estolfo over 6 years ago

https://github.com/elastic/elasticsearch-ruby - 7.2.0

This client version supports Elasticsearch server version 7.2.0

Notable changes include the addition of the User-Agent header and support for compression with the compression: true option on a client.

Client

  • Support User-Agent header client team specification
  • Improve code handling headers
  • Handle headers when using JRuby and Manticore
  • Rename method for clarity
  • Test selecting connections using multiple threads
  • Synchronize access to the connections collection and mutation of @current instance variable
  • Fix specs for selecting a connection
  • Further fixes to specs for testing selecting connections in parallel
  • Support providing a cloud id
  • Allow a port to be set with a Cloud id and use default if no port is provided
  • Remove unnecessary check for cloud_id when setting default port
  • Add documentation for creating client with cloud_id
  • Allow compression with Faraday and supported http adapters
  • Put development gem dependencies in gemspec
  • No reason to use ! for decompress method name
  • Check for the existence of headers before checking headers
  • Apply compression headers manually based on general :compression option
  • Use GZIP constant
  • Group tests into their transport adapters
  • Support compression when using Curb adapter
  • Support compression when using Manticore adapter with JRuby
  • Fix Curb unit test, expecting headers to be merged and not set
  • Update test descriptions for compression settings
  • Add documentation of 'compression' option on client
  • Improve client documentation for compression option
  • Centralize header handling into one method
  • Only add Accept-Encoding header if compression option is true

API

  • Use rewritten test harness from XPACK for rest API tests
  • Include skipped tests and further updates
  • Delete all repositories and snapshots in a method
  • Further updates to the rest API test runner
  • Add erroneously removed constants and gems
  • Updates to rest api yaml rspec tasks
  • The get_source endpoint should raise an error if the resource is not found
  • Rename method to clear data in tests and consolidate tasks into one method
  • Update api for 7.2

- Ruby
Published by estolfo over 6 years ago

https://github.com/elastic/elasticsearch-ruby - DSL v0.1.8

  • Swap links elasticsearch.org->elastic.co (@harry-wood)
  • Add a composite aggregation (@watsonjon)
  • Don't specify a type when creating mappings in tests
  • Update links in elasticsearch-dsl README
  • Allow Bool query and Bool filter methods to take objects as arguments
  • Edit tests on bool query / filter to match context

- Ruby
Published by estolfo over 6 years ago