lib/elasticsearch/api/actions/indices/stats.rb in elasticsearch-api-7.17.11 vs lib/elasticsearch/api/actions/indices/stats.rb in elasticsearch-api-8.0.0.pre1
- old
+ new
@@ -19,74 +19,52 @@
module API
module Indices
module Actions
# Provides statistics on operations happening in an index.
#
- # @option arguments [List] :metric Limit the information returned the specific metrics. (options: _all, completion, docs, fielddata, query_cache, flush, get, indexing, merge, request_cache, refresh, search, segments, store, warmer, suggest)
+ # @option arguments [List] :metric Limit the information returned the specific metrics. (options: _all, completion, docs, fielddata, query_cache, flush, get, indexing, merge, request_cache, refresh, search, segments, store, warmer, bulk)
# @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
- # @option arguments [List] :completion_fields A comma-separated list of fields for `fielddata` and `suggest` index metric (supports wildcards)
- # @option arguments [List] :fielddata_fields A comma-separated list of fields for `fielddata` index metric (supports wildcards)
+ # @option arguments [List] :completion_fields A comma-separated list of fields for the `completion` index metric (supports wildcards)
+ # @option arguments [List] :fielddata_fields A comma-separated list of fields for the `fielddata` index metric (supports wildcards)
# @option arguments [List] :fields A comma-separated list of fields for `fielddata` and `completion` index metric (supports wildcards)
# @option arguments [List] :groups A comma-separated list of search groups for `search` index metric
# @option arguments [String] :level Return stats aggregated at cluster, index or shard level (options: cluster, indices, shards)
# @option arguments [List] :types A comma-separated list of document types for the `indexing` index metric
# @option arguments [Boolean] :include_segment_file_sizes Whether to report the aggregated disk usage of each one of the Lucene index files (only applies if segment stats are requested)
# @option arguments [Boolean] :include_unloaded_segments If set to true segment stats will include stats for segments that are not currently loaded into memory
# @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are open, closed or both. (options: open, closed, hidden, none, all)
# @option arguments [Boolean] :forbid_closed_indices If set to false stats will also collected from closed indices if explicitly specified or if expand_wildcards expands to closed indices
# @option arguments [Hash] :headers Custom HTTP headers
#
- # @see https://www.elastic.co/guide/en/elasticsearch/reference/7.17/indices-stats.html
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-stats.html
#
def stats(arguments = {})
headers = arguments.delete(:headers) || {}
- method = HTTP_GET
- parts = Utils.__extract_parts arguments, ParamsRegistry.get(:stats_parts)
- path = Utils.__pathify Utils.__listify(arguments[:index]), '_stats', Utils.__listify(parts)
- params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(:stats_params)
- params[:fields] = Utils.__listify(params[:fields], :escape => false) if params[:fields]
- params[:groups] = Utils.__listify(params[:groups], :escape => false) if params[:groups]
-
body = nil
- perform_request(method, path, params, body, headers).body
- end
- # Register this action with its valid params when the module is loaded.
- #
- # @since 6.2.0
- ParamsRegistry.register(:stats_params, [
- :completion_fields,
- :fielddata_fields,
- :fields,
- :groups,
- :level,
- :types,
- :include_segment_file_sizes,
- :include_unloaded_segments,
- :expand_wildcards,
- :forbid_closed_indices
- ].freeze)
+ arguments = arguments.clone
- ParamsRegistry.register(:stats_parts, [
- :_all,
- :completion,
- :docs,
- :fielddata,
- :query_cache,
- :flush,
- :get,
- :indexing,
- :merge,
- :request_cache,
- :refresh,
- :search,
- :segments,
- :store,
- :warmer,
- :suggest,
- :metric
- ].freeze)
+ _metric = arguments.delete(:metric)
+
+ _index = arguments.delete(:index)
+
+ method = Elasticsearch::API::HTTP_GET
+ path = if _index && _metric
+ "#{Utils.__listify(_index)}/_stats/#{Utils.__listify(_metric)}"
+ elsif _metric
+ "_stats/#{Utils.__listify(_metric)}"
+ elsif _index
+ "#{Utils.__listify(_index)}/_stats"
+ else
+ "_stats"
+ end
+ params = Utils.process_params(arguments)
+
+ Elasticsearch::API::Response.new(
+ perform_request(method, path, params, body, headers)
+ )
+ end
end
end
end
end