elasticsearch-api 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +15 -0
  2. data/elasticsearch-api.gemspec +3 -2
  3. data/lib/elasticsearch/api.rb +2 -1
  4. data/lib/elasticsearch/api/actions/abort_benchmark.rb +27 -0
  5. data/lib/elasticsearch/api/actions/benchmark.rb +62 -0
  6. data/lib/elasticsearch/api/actions/cat/fielddata.rb +49 -0
  7. data/lib/elasticsearch/api/actions/cluster/health.rb +5 -1
  8. data/lib/elasticsearch/api/actions/cluster/state.rb +2 -1
  9. data/lib/elasticsearch/api/actions/count_percolate.rb +1 -1
  10. data/lib/elasticsearch/api/actions/delete.rb +1 -1
  11. data/lib/elasticsearch/api/actions/get.rb +4 -0
  12. data/lib/elasticsearch/api/actions/index.rb +22 -2
  13. data/lib/elasticsearch/api/actions/indices/get_template.rb +5 -1
  14. data/lib/elasticsearch/api/actions/indices/optimize.rb +3 -0
  15. data/lib/elasticsearch/api/actions/indices/put_template.rb +2 -3
  16. data/lib/elasticsearch/api/actions/indices/recovery.rb +42 -0
  17. data/lib/elasticsearch/api/actions/indices/stats.rb +42 -36
  18. data/lib/elasticsearch/api/actions/list_benchmarks.rb +29 -0
  19. data/lib/elasticsearch/api/actions/mlt.rb +39 -1
  20. data/lib/elasticsearch/api/actions/nodes/info.rb +11 -9
  21. data/lib/elasticsearch/api/actions/percolate.rb +1 -1
  22. data/lib/elasticsearch/api/actions/scroll.rb +20 -2
  23. data/lib/elasticsearch/api/actions/search.rb +3 -2
  24. data/lib/elasticsearch/api/actions/search_shards.rb +41 -0
  25. data/lib/elasticsearch/api/actions/search_template.rb +61 -0
  26. data/lib/elasticsearch/api/actions/snapshot/create.rb +1 -1
  27. data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +1 -1
  28. data/lib/elasticsearch/api/actions/snapshot/restore.rb +1 -1
  29. data/lib/elasticsearch/api/actions/snapshot/status.rb +40 -0
  30. data/lib/elasticsearch/api/utils.rb +23 -1
  31. data/lib/elasticsearch/api/version.rb +1 -1
  32. data/test/integration/yaml_test_runner.rb +1 -0
  33. data/test/unit/abort_benchmark_test.rb +26 -0
  34. data/test/unit/benchmark_test.rb +26 -0
  35. data/test/unit/cat/fielddata_test.rb +38 -0
  36. data/test/unit/indices/recovery_test.rb +26 -0
  37. data/test/unit/indices/stats_test.rb +5 -14
  38. data/test/unit/list_benchmarks_test.rb +26 -0
  39. data/test/unit/nodes/info_test.rb +21 -0
  40. data/test/unit/search_shards_test.rb +26 -0
  41. data/test/unit/search_template_test.rb +26 -0
  42. data/test/unit/snapshot/status_test.rb +38 -0
  43. data/test/unit/utils_test.rb +8 -0
  44. metadata +43 -53
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZGQwODMzZmNlYjgzMjE4OTQ4OGI4ZGIzM2VkYTA1NjAyZTYwZDI3ZQ==
5
+ data.tar.gz: !binary |-
6
+ ZjY0YzIzZWUyOTA3YjFkYjFhZjc5NjNlN2UwMWM2NmFhZDViNzZkYw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZmQyYmNiYzI0ODI4MzFiYmExZDU3Njc1ZmVlOGNmMTZkNGUxMWJjNzE3Yzhi
10
+ ZjllODY2OTAzMjViZDBhZGJkYjU5OGRjNWNhYmE1NzYwM2JlNmM4NDZkZDRl
11
+ YmVhZDM0MmJkNjhmMzU2MjBlZmYyNjBjMTdmOGQ0NWI3YWRlY2M=
12
+ data.tar.gz: !binary |-
13
+ ZDA5NzA2MjI5MDE1YjE1M2RlYzBjNmM0NTA2MDRjMzlmMTkwODA2M2MwNzc3
14
+ YjgyM2NkMDZjZTIxZDY2ODIxNzg5NDk3ZjczMDY0Yjg2ZDFhYzIyODI5OTgz
15
+ ZjcxNmQ3MTg0NTI3NzRjNjVhYTQ3MjYxYjYxODIwZTQ4NDg1Yzg=
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  s.add_development_dependency "elasticsearch-transport"
30
30
 
31
31
  if defined?(RUBY_VERSION) && RUBY_VERSION > '1.9'
32
+ s.add_development_dependency "minitest", "~> 4.0"
32
33
  s.add_development_dependency "elasticsearch-extensions"
33
34
  end
34
35
 
@@ -52,13 +53,13 @@ Gem::Specification.new do |s|
52
53
  end
53
54
 
54
55
  if defined?(RUBY_VERSION) && RUBY_VERSION > '1.9'
55
- s.add_development_dependency "ruby-prof" unless defined? JRUBY_VERSION
56
+ s.add_development_dependency "ruby-prof" unless defined?(JRUBY_VERSION) || defined?(Rubinius)
56
57
  s.add_development_dependency "jbuilder"
57
58
  s.add_development_dependency "escape_utils" unless defined? JRUBY_VERSION
58
59
  s.add_development_dependency "simplecov"
59
60
  s.add_development_dependency "simplecov-rcov"
60
61
  s.add_development_dependency "cane"
61
- s.add_development_dependency "require-prof"
62
+ s.add_development_dependency "require-prof" unless defined?(JRUBY_VERSION) || defined?(Rubinius)
62
63
  s.add_development_dependency "coveralls"
63
64
  end
64
65
 
@@ -21,7 +21,8 @@ module Elasticsearch
21
21
 
22
22
  COMMON_QUERY_PARAMS = [
23
23
  :format, # Search, Cat, ...
24
- :pretty # Pretty-print the response
24
+ :pretty, # Pretty-print the response
25
+ :human # Return numeric values in human readable format
25
26
  ]
26
27
 
27
28
  # Auto-include all namespaces in the receiver
@@ -0,0 +1,27 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Actions
4
+
5
+ # Abort a running benchmark
6
+ #
7
+ # @example
8
+ #
9
+ # client.abort_benchmark name: 'my_benchmark'
10
+ #
11
+ # @option arguments [String] :name A benchmark name
12
+ #
13
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-benchmark.html
14
+ #
15
+ def abort_benchmark(arguments={})
16
+ valid_params = [
17
+ ]
18
+ method = 'POST'
19
+ path = "_bench/abort/#{arguments[:name]}"
20
+ params = {}
21
+ body = nil
22
+
23
+ perform_request(method, path, params, body).body
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,62 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Actions
4
+
5
+ # Run a single query, or a set of queries, and return statistics on their performance
6
+ #
7
+ # @example Return statistics for a single query
8
+ #
9
+ # client.benchmark body: {
10
+ # name: 'my_benchmark',
11
+ # competitors: [
12
+ # {
13
+ # name: 'query_1',
14
+ # requests: [
15
+ # { query: { match: { _all: 'a*' } } }
16
+ # ]
17
+ # }
18
+ # ]
19
+ # }
20
+ #
21
+ # @example Return statistics for a set of "competing" queries
22
+ #
23
+ # client.benchmark body: {
24
+ # name: 'my_benchmark',
25
+ # competitors: [
26
+ # {
27
+ # name: 'query_a',
28
+ # requests: [
29
+ # { query: { match: { _all: 'a*' } } }
30
+ # ]
31
+ # },
32
+ # {
33
+ # name: 'query_b',
34
+ # requests: [
35
+ # { query: { match: { _all: 'b*' } } }
36
+ # ]
37
+ # }
38
+ # ]
39
+ # }
40
+ #
41
+ # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string
42
+ # to perform the operation on all indices
43
+ # @option arguments [String] :type The name of the document type
44
+ # @option arguments [Hash] :body The search definition using the Query DSL
45
+ # @option arguments [Boolean] :verbose Specify whether to return verbose statistics about each iteration
46
+ # (default: false)
47
+ #
48
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-benchmark.html
49
+ #
50
+ def benchmark(arguments={})
51
+ valid_params = [
52
+ :verbose ]
53
+ method = 'PUT'
54
+ path = "_bench"
55
+ params = Utils.__validate_and_extract_params arguments, valid_params
56
+ body = arguments[:body]
57
+
58
+ perform_request(method, path, params, body).body
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,49 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Cat
4
+ module Actions
5
+
6
+ # Return information about field data usage across the cluster
7
+ #
8
+ # @example Return the total size of field data
9
+ #
10
+ # client.cat.fielddata
11
+ #
12
+ # @example Return both the total size and size for specific fields
13
+ #
14
+ # client.cat.fielddata fields: 'title,body'
15
+ #
16
+ # @option arguments [List] :fields A comma-separated list of fields to include in the output
17
+ # @option arguments [String] :bytes The unit in which to display byte values (options: b, k, m, g)
18
+ # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node
19
+ # (default: false)
20
+ # @option arguments [Time] :master_timeout Explicit operation timeout for connection to master node
21
+ # @option arguments [List] :h Comma-separated list of column names to display
22
+ # @option arguments [Boolean] :help Return help information
23
+ # @option arguments [Boolean] :v Verbose mode. Display column headers
24
+ #
25
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/cat-fielddata.html
26
+ #
27
+ def fielddata(arguments={})
28
+ valid_params = [
29
+ :bytes,
30
+ :local,
31
+ :master_timeout,
32
+ :h,
33
+ :help,
34
+ :v,
35
+ :fields ]
36
+
37
+ fields = arguments.delete(:fields)
38
+
39
+ method = 'GET'
40
+ path = Utils.__pathify "_cat/fielddata", Utils.__listify(fields)
41
+ params = Utils.__validate_and_extract_params arguments, valid_params
42
+ body = nil
43
+
44
+ perform_request(method, path, params, body).body
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -5,10 +5,14 @@ module Elasticsearch
5
5
 
6
6
  # Returns information about cluster "health".
7
7
  #
8
- # @example
8
+ # @example Get the cluster health information
9
9
  #
10
10
  # client.cluster.health
11
11
  #
12
+ # @example Block the request until the cluster is in the "yellow" state
13
+ #
14
+ # client.cluster.health wait_for_status: 'yellow'
15
+ #
12
16
  # @option arguments [String] :index Limit the information returned to a specific index
13
17
  # @option arguments [String] :level Specify the level of detail for returned information
14
18
  # (options: cluster, indices, shards)
@@ -12,7 +12,8 @@ module Elasticsearch
12
12
  # @option arguments [List] :index A comma-separated list of index names; use `_all` or omit to
13
13
  # perform the operation on all indices
14
14
  # @option arguments [List] :metric Limit the information returned to the specified metrics
15
- # (options: _all, blocks, index_templates, metadata, nodes, routing_table)
15
+ # (options: _all, blocks, index_templates, metadata, nodes, routing_table,
16
+ # master_node, version)
16
17
  # @option arguments [List] :index_templates A comma separated list to return specific index templates when
17
18
  # returning metadata
18
19
  # @option arguments [Boolean] :local Return local information, do not retrieve the state from master node
@@ -44,7 +44,7 @@ module Elasticsearch
44
44
  # @option arguments [String] :percolate_index The index to percolate the document into. Defaults to passed `index`.
45
45
  # @option arguments [String] :percolate_type The type to percolate document into. Defaults to passed `type`.
46
46
  # @option arguments [Number] :version Explicit version number for concurrency control
47
- # @option arguments [String] :version_type Specific version type (options: internal, external)
47
+ # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
48
48
  #
49
49
  # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-percolate.html
50
50
  #
@@ -24,7 +24,7 @@ module Elasticsearch
24
24
  # @option arguments [String] :routing Specific routing value
25
25
  # @option arguments [Time] :timeout Explicit operation timeout
26
26
  # @option arguments [Number] :version Explicit version number for concurrency control
27
- # @option arguments [String] :version_type Specific version type (options: internal, external)
27
+ # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
28
28
  #
29
29
  # @see http://elasticsearch.org/guide/reference/api/delete/
30
30
  #
@@ -22,6 +22,8 @@ module Elasticsearch
22
22
  # @option arguments [Boolean] :realtime Specify whether to perform the operation in realtime or search mode
23
23
  # @option arguments [Boolean] :refresh Refresh the shard containing the document before performing the operation
24
24
  # @option arguments [String] :routing Specific routing value
25
+ # @option arguments [Number] :version Explicit version number for concurrency control
26
+ # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
25
27
  # @option arguments [String] :_source Specify whether the _source field should be returned,
26
28
  # or a list of fields to return
27
29
  # @option arguments [String] :_source_exclude A list of fields to exclude from the returned _source field
@@ -41,6 +43,8 @@ module Elasticsearch
41
43
  :realtime,
42
44
  :refresh,
43
45
  :routing,
46
+ :version,
47
+ :version_type,
44
48
  :_source,
45
49
  :_source_include,
46
50
  :_source_exclude ]
@@ -16,7 +16,6 @@ module Elasticsearch
16
16
  # By default, the document will be available for {Actions#get} immediately, for {Actions#search} only
17
17
  # after an index refresh operation has been performed (either automatically or manually).
18
18
  #
19
- #
20
19
  # @example Create or update a document `myindex/mytype/1`
21
20
  #
22
21
  # client.index index: 'myindex',
@@ -30,6 +29,27 @@ module Elasticsearch
30
29
  # counter: 1
31
30
  # }
32
31
  #
32
+ # @example Refresh the index after the operation (useful e.g. in integration tests)
33
+ #
34
+ # client.index index: 'myindex', type: 'mytype', id: '1', body: { title: 'TEST' }, refresh: true
35
+ # client.search index: 'myindex', q: 'title:test'
36
+ #
37
+ # @example Create a document with a specific expiration time (TTL)
38
+ #
39
+ # # Decrease the default housekeeping interval first:
40
+ # client.cluster.put_settings body: { transient: { 'indices.ttl.interval' => '1s' } }
41
+ #
42
+ # # Enable the `_ttl` property for all types within the index
43
+ # client.indices.create index: 'myindex', body: { mappings: { mytype: { _ttl: { enabled: true } } } }
44
+ #
45
+ # client.index index: 'myindex', type: 'mytype', id: '1', body: { title: 'TEST' }, ttl: '5s'
46
+ #
47
+ # sleep 3 and client.get index: 'myindex', type: 'mytype', id: '1'
48
+ # # => {"_index"=>"myindex" ... "_source"=>{"title"=>"TEST"}}
49
+ #
50
+ # sleep 3 and client.get index: 'myindex', type: 'mytype', id: '1'
51
+ # # => Elasticsearch::Transport::Transport::Errors::NotFound: [404] ...
52
+ #
33
53
  # @option arguments [String] :id Document ID (optional, will be auto-generated if missing)
34
54
  # @option arguments [String] :index The name of the index (*Required*)
35
55
  # @option arguments [String] :type The type of the document (*Required*)
@@ -46,7 +66,7 @@ module Elasticsearch
46
66
  # @option arguments [Time] :timestamp Explicit timestamp for the document
47
67
  # @option arguments [Duration] :ttl Expiration time for the document
48
68
  # @option arguments [Number] :version Explicit version number for concurrency control
49
- # @option arguments [String] :version_type Specific version type (options: internal, external)
69
+ # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
50
70
  #
51
71
  # @see http://elasticsearch.org/guide/reference/api/index_/
52
72
  #
@@ -5,13 +5,17 @@ module Elasticsearch
5
5
 
6
6
  # Get a single index template.
7
7
  #
8
+ # @example Get all templates
9
+ #
10
+ # client.indices.get_template
11
+ #
8
12
  # @example Get a template named _mytemplate_
9
13
  #
10
14
  # client.indices.get_template name: 'mytemplate'
11
15
  #
12
16
  # @note Use the {Cluster::Actions#state} API to get a list of all templates.
13
17
  #
14
- # @option arguments [String] :name The name of the template (*Required*)
18
+ # @option arguments [String] :name The name of the template (supports wildcards)
15
19
  #
16
20
  # @see http://www.elasticsearch.org/guide/reference/api/admin-indices-templates/
17
21
  #
@@ -25,6 +25,8 @@ module Elasticsearch
25
25
  # are open, closed or both. (options: open, closed)
26
26
  # @option arguments [Boolean] :flush Specify whether the index should be flushed after performing the operation
27
27
  # (default: true)
28
+ # @option arguments [Boolean] :force Force a merge operation to run, even when the index has a single segment
29
+ # (default: true)
28
30
  # @option arguments [String] :ignore_indices When performed on multiple indices, allows to ignore
29
31
  # `missing` ones (options: none, missing) @until 1.0
30
32
  # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
@@ -48,6 +50,7 @@ module Elasticsearch
48
50
  :allow_no_indices,
49
51
  :expand_wildcards,
50
52
  :flush,
53
+ :force,
51
54
  :master_timeout,
52
55
  :max_num_segments,
53
56
  :only_expunge_deletes,
@@ -5,11 +5,10 @@ module Elasticsearch
5
5
 
6
6
  # Create or update an index template.
7
7
  #
8
- #
9
8
  # @example Create a template for all indices starting with `logs-`
10
9
  #
11
- # client.indices.put_template :name => 'foo',
12
- # :body => { template: 'logs-*', settings: { 'index.number_of_shards' => 1 } }
10
+ # client.indices.put_template name: 'foo',
11
+ # body: { template: 'logs-*', settings: { 'index.number_of_shards' => 1 } }
13
12
  #
14
13
  # @option arguments [String] :name The name of the template (*Required*)
15
14
  # @option arguments [Hash] :body The template definition (*Required*)
@@ -0,0 +1,42 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Indices
4
+ module Actions
5
+
6
+ # Return information about shard recovery for one or more indices
7
+ #
8
+ # @example Get recovery information for a single index
9
+ #
10
+ # client.indices.recovery index: 'foo'
11
+ #
12
+ # @example Get detailed recovery information for multiple indices
13
+ #
14
+ # client.indices.recovery index: ['foo', 'bar'], detailed: true
15
+ #
16
+ # @example Get recovery information for all indices
17
+ #
18
+ # client.indices.recovery
19
+ #
20
+ # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string to perform the operation on all indices
21
+ # @option arguments [Boolean] :detailed Whether to display detailed information about shard recovery
22
+ # @option arguments [Boolean] :active_only Display only those recoveries that are currently on-going
23
+ # @option arguments [Boolean] :human Whether to return time and byte values in human readable format
24
+ #
25
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/indices-recovery.html
26
+ #
27
+ def recovery(arguments={})
28
+ valid_params = [
29
+ :detailed,
30
+ :active_only,
31
+ :human ]
32
+ method = 'GET'
33
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_recovery'
34
+ params = Utils.__validate_and_extract_params arguments, valid_params
35
+ body = nil
36
+
37
+ perform_request(method, path, params, body).body
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -9,35 +9,34 @@ module Elasticsearch
9
9
  # how much time did indexing, search and other operations take, how much disk space it takes,
10
10
  # how much memory filter caches or field data require, etc.
11
11
  #
12
- # @example Get default statistics for all indices
12
+ # @example Get all available statistics for all indices
13
13
  #
14
14
  # client.indices.stats
15
15
  #
16
- # @example Get all available statistics for a single index
16
+ # @example Get statistics for a single index
17
17
  #
18
- # client.indices.stats index: 'foo', all: true
18
+ # client.indices.stats index: 'foo'
19
19
  #
20
20
  # @example Get statistics about documents and disk size for multiple indices
21
21
  #
22
- # client.indices.stats index: ['foo', 'bar'], clear: true, docs: true, store: true
22
+ # client.indices.stats index: ['foo', 'bar'], docs: true, store: true
23
23
  #
24
- # @example Get statistics about filter cache and field data, for all indices
24
+ # @example Get statistics about filter cache and field data for all fields
25
25
  #
26
- # client.indices.stats clear: true, fielddata: true , filter_cache: true, fields: '*'
26
+ # client.indices.stats fielddata: true, filter_cache: true
27
27
  #
28
- # @example Get statistics about searches, with segmentation for different search groups
28
+ # @example Get statistics about filter cache and field data for specific fields
29
29
  #
30
- # client.indices.stats clear: true, search: true , groups: ['groupA', 'groupB']
30
+ # client.indices.stats fielddata: true, filter_cache: true, fields: 'created_at,tags'
31
31
  #
32
- # @since The `fielddata`, `filter_cache` and `id_cache` metrics are available from version 0.90.
32
+ # @example Get statistics about filter cache and field data per field for all fields
33
+ #
34
+ # client.indices.stats fielddata: true, filter_cache: true, fields: '*'
35
+ #
36
+ # @example Get statistics about searches, with segmentation for different search groups
37
+ #
38
+ # client.indices.stats search: true, groups: ['groupA', 'groupB']
33
39
  #
34
- # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into
35
- # no concrete indices. (This includes `_all` string or when no
36
- # indices have been specified)
37
- # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that
38
- # are open, closed or both. (options: open, closed)
39
- # @option arguments [Boolean] :all Return all available information
40
- # @option arguments [Boolean] :clear Reset the default level of detail
41
40
  # @option arguments [Boolean] :docs Return information about indexed and deleted documents
42
41
  # @option arguments [Boolean] :fielddata Return information about field data
43
42
  # @option arguments [Boolean] :fields A comma-separated list of fields for `fielddata` metric (supports wildcards)
@@ -46,51 +45,58 @@ module Elasticsearch
46
45
  # @option arguments [Boolean] :get Return information about get operations
47
46
  # @option arguments [Boolean] :groups A comma-separated list of search groups for `search` statistics
48
47
  # @option arguments [Boolean] :id_cache Return information about ID cache
49
- # @option arguments [String] :ignore_indices When performed on multiple indices, allows to ignore
50
- # `missing` ones (options: none, missing) @until 1.0
51
- # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
52
- # unavailable (missing, closed, etc)
53
48
  # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string
54
49
  # to perform the operation on all indices
55
50
  # @option arguments [Boolean] :indexing Return information about indexing operations
56
- # @option arguments [List] :indexing_types A comma-separated list of document types to include
57
- # in the `indexing` statistics
51
+ # @option arguments [List] :types A comma-separated list of document types to include in the `indexing` info
58
52
  # @option arguments [Boolean] :merge Return information about merge operations
59
53
  # @option arguments [Boolean] :refresh Return information about refresh operations
60
54
  # @option arguments [Boolean] :search Return information about search operations; use the `groups` parameter to
61
55
  # include information for specific search groups
62
- # @option arguments [List] :search_groups A comma-separated list of search groups to include
63
- # in the `search` statistics
56
+ # @option arguments [List] :groups A comma-separated list of search groups to include in the `search` statistics
57
+ # @option arguments [Boolean] :suggest Return information about suggest statistics
64
58
  # @option arguments [Boolean] :store Return information about the size of the index
65
59
  # @option arguments [Boolean] :warmer Return information about warmers
60
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
61
+ # unavailable (missing, closed, etc)
62
+ # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into
63
+ # no concrete indices. (This includes `_all` string or when no
64
+ # indices have been specified)
65
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that
66
+ # are open, closed or both. (options: open, closed)
66
67
  #
67
- # @see http://elasticsearch.org/guide/reference/api/admin-indices-stats/
68
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-stats.html
68
69
  #
69
70
  def stats(arguments={})
70
- valid_params = [
71
- :all,
72
- :clear,
71
+ valid_parts = [
73
72
  :docs,
74
73
  :fielddata,
75
- :fields,
76
74
  :filter_cache,
77
75
  :flush,
78
76
  :get,
79
- :groups,
80
- :id_cache,
81
- :ignore_indices,
82
- :ignore_unavailable,
83
- :allow_no_indices,
84
- :expand_wildcards,
85
77
  :indexing,
86
78
  :merge,
87
79
  :refresh,
88
80
  :search,
81
+ :suggest,
89
82
  :store,
90
83
  :warmer ]
91
84
 
85
+ valid_params = [
86
+ :fields,
87
+ :completion_fields,
88
+ :fielddata_fields,
89
+ :groups,
90
+ :types,
91
+ :ignore_indices,
92
+ :ignore_unavailable,
93
+ :allow_no_indices,
94
+ :expand_wildcards ]
95
+
92
96
  method = 'GET'
93
- path = Utils.__pathify Utils.__listify(arguments[:index]), '_stats'
97
+
98
+ parts = Utils.__extract_parts arguments, valid_parts
99
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_stats', Utils.__listify(parts)
94
100
 
95
101
  params = Utils.__validate_and_extract_params arguments, valid_params
96
102
  params[:fields] = Utils.__listify(params[:fields]) if params[:fields]