elasticsearch-api 6.3.0 → 6.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/elasticsearch/api/actions/delete_template.rb +21 -0
  3. data/lib/elasticsearch/api/actions/field_stats.rb +36 -0
  4. data/lib/elasticsearch/api/actions/get_template.rb +27 -0
  5. data/lib/elasticsearch/api/actions/indices/delete_mapping.rb +26 -0
  6. data/lib/elasticsearch/api/actions/indices/delete_warmer.rb +32 -0
  7. data/lib/elasticsearch/api/actions/indices/get_aliases.rb +37 -0
  8. data/lib/elasticsearch/api/actions/indices/get_warmer.rb +62 -0
  9. data/lib/elasticsearch/api/actions/indices/optimize.rb +77 -0
  10. data/lib/elasticsearch/api/actions/indices/put_warmer.rb +65 -0
  11. data/lib/elasticsearch/api/actions/indices/seal.rb +24 -0
  12. data/lib/elasticsearch/api/actions/indices/snapshot_index.rb +44 -0
  13. data/lib/elasticsearch/api/actions/indices/status.rb +63 -0
  14. data/lib/elasticsearch/api/actions/list_benchmarks.rb +27 -0
  15. data/lib/elasticsearch/api/actions/mlt.rb +130 -0
  16. data/lib/elasticsearch/api/actions/mpercolate.rb +62 -0
  17. data/lib/elasticsearch/api/actions/nodes/shutdown.rb +39 -0
  18. data/lib/elasticsearch/api/actions/percolate.rb +73 -0
  19. data/lib/elasticsearch/api/actions/put_template.rb +25 -0
  20. data/lib/elasticsearch/api/actions/remote/info.rb +21 -0
  21. data/lib/elasticsearch/api/actions/search_exists.rb +63 -0
  22. data/lib/elasticsearch/api/actions/suggest.rb +49 -0
  23. data/lib/elasticsearch/api/version.rb +1 -1
  24. data/spec/elasticsearch/api/actions/delete_template_spec.rb +17 -0
  25. data/spec/elasticsearch/api/actions/field_stats_spec.rb +17 -0
  26. data/spec/elasticsearch/api/actions/get_template_spec.rb +52 -0
  27. data/spec/elasticsearch/api/actions/indices/delete_mapping_spec.rb +77 -0
  28. data/spec/elasticsearch/api/actions/indices/delete_warmer_spec.rb +86 -0
  29. data/spec/elasticsearch/api/actions/indices/get_aliases_spec.rb +55 -0
  30. data/spec/elasticsearch/api/actions/indices/get_warmer_spec.rb +48 -0
  31. data/spec/elasticsearch/api/actions/indices/optimize_spec.rb +63 -0
  32. data/spec/elasticsearch/api/actions/indices/put_warmer_spec.rb +101 -0
  33. data/spec/elasticsearch/api/actions/indices/seal_spec.rb +18 -0
  34. data/spec/elasticsearch/api/actions/indices/snapshot_index_spec.rb +89 -0
  35. data/spec/elasticsearch/api/actions/indices/status_spec.rb +92 -0
  36. data/spec/elasticsearch/api/actions/list_benchmarks_spec.rb +17 -0
  37. data/spec/elasticsearch/api/actions/mlt_spec.rb +130 -0
  38. data/spec/elasticsearch/api/actions/mpercolate_spec.rb +49 -0
  39. data/spec/elasticsearch/api/actions/nodes/shutdown_spec.rb +59 -0
  40. data/spec/elasticsearch/api/actions/percolate_spec.rb +67 -0
  41. data/spec/elasticsearch/api/actions/put_template_spec.rb +17 -0
  42. data/spec/elasticsearch/api/actions/remote/info_spec.rb +18 -0
  43. data/spec/elasticsearch/api/actions/search_exists_spec.rb +63 -0
  44. data/spec/elasticsearch/api/actions/suggest_spec.rb +77 -0
  45. metadata +65 -2
@@ -0,0 +1,63 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Indices
4
+ module Actions
5
+
6
+ # Return information about one or more indices
7
+ #
8
+ # @example Get information about all indices
9
+ #
10
+ # client.indices.status
11
+ #
12
+ # @example Get information about a specific index
13
+ #
14
+ # client.indices.status index: 'foo'
15
+ #
16
+ # @example Get information about shard recovery for a specific index
17
+ #
18
+ # client.indices.status index: 'foo', recovery: true
19
+ #
20
+ # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string
21
+ # to perform the operation on all indices
22
+ # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into
23
+ # no concrete indices. (This includes `_all` string or when no
24
+ # indices have been specified)
25
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that
26
+ # are open, closed or both. (options: open, closed)
27
+ # @option arguments [String] :ignore_indices When performed on multiple indices, allows to ignore
28
+ # `missing` ones (options: none, missing) @until 1.0
29
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
30
+ # unavailable (missing, closed, etc)
31
+ # @option arguments [Boolean] :recovery Return information about shard recovery (progress, size, etc)
32
+ # @option arguments [Boolean] :snapshot Return information about snapshots (when shared gateway is used)
33
+ #
34
+ # @see http://elasticsearch.org/guide/reference/api/admin-indices-status/
35
+ #
36
+ def status(arguments={})
37
+ method = HTTP_GET
38
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_status'
39
+
40
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
41
+ body = nil
42
+
43
+ if Array(arguments[:ignore]).include?(404)
44
+ Utils.__rescue_from_not_found { perform_request(method, path, params, body).body }
45
+ else
46
+ perform_request(method, path, params, body).body
47
+ end
48
+ end
49
+
50
+ # Register this action with its valid params when the module is loaded.
51
+ #
52
+ # @since 6.2.0
53
+ ParamsRegistry.register(:status, [
54
+ :ignore_indices,
55
+ :ignore_unavailable,
56
+ :allow_no_indices,
57
+ :expand_wildcards,
58
+ :recovery,
59
+ :snapshot ].freeze)
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,27 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Actions
4
+
5
+ # Return a list of running benchmarks
6
+ #
7
+ # @example
8
+ #
9
+ # client.list_benchmarks
10
+ #
11
+ # @option arguments [List] :index A comma-separated list of index names; use `_all` or empty string
12
+ # to perform the operation on all indices
13
+ # @option arguments [String] :type The name of the document type
14
+ #
15
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-benchmark.html
16
+ #
17
+ def list_benchmarks(arguments={})
18
+ method = HTTP_GET
19
+ path = "_bench"
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,130 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Actions
4
+
5
+ # Return documents similar to the specified one.
6
+ #
7
+ # Performs a `more_like_this` query with the specified document as the input.
8
+ #
9
+ # @example Search for similar documents using the `title` property of document `myindex/mytype/1`
10
+ #
11
+ # # First, let's setup a synonym-aware analyzer ("quick" <=> "fast")
12
+ # client.indices.create index: 'myindex', body: {
13
+ # settings: {
14
+ # analysis: {
15
+ # filter: {
16
+ # synonyms: {
17
+ # type: 'synonym',
18
+ # synonyms: [ "quick,fast" ]
19
+ # }
20
+ # },
21
+ # analyzer: {
22
+ # title_synonym: {
23
+ # type: 'custom',
24
+ # tokenizer: 'whitespace',
25
+ # filter: ['lowercase', 'stop', 'snowball', 'synonyms']
26
+ # }
27
+ # }
28
+ # }
29
+ # },
30
+ # mappings: {
31
+ # mytype: {
32
+ # properties: {
33
+ # title: {
34
+ # type: 'string',
35
+ # analyzer: 'title_synonym'
36
+ # }
37
+ # }
38
+ # }
39
+ # }
40
+ # }
41
+ #
42
+ # # Index three documents
43
+ # client.index index: 'myindex', type: 'mytype', id: 1, body: { title: 'Quick Brown Fox' }
44
+ # client.index index: 'myindex', type: 'mytype', id: 2, body: { title: 'Slow Black Dog' }
45
+ # client.index index: 'myindex', type: 'mytype', id: 3, body: { title: 'Fast White Rabbit' }
46
+ # client.indices.refresh index: 'myindex'
47
+ #
48
+ # client.mlt index: 'myindex', type: 'mytype', id: 1, mlt_fields: 'title', min_doc_freq: 1, min_term_freq: 1
49
+ # # => { ... {"title"=>"Fast White Rabbit"}}]}}
50
+ #
51
+ # @option arguments [String] :id The document ID (*Required*)
52
+ # @option arguments [String] :index The name of the index (*Required*)
53
+ # @option arguments [String] :type The type of the document (use `_all` to fetch
54
+ # the first document matching the ID across all types) (*Required*)
55
+ # @option arguments [Hash] :body A specific search request definition
56
+ # @option arguments [Number] :boost_terms The boost factor
57
+ # @option arguments [Number] :max_doc_freq The word occurrence frequency as count: words with higher occurrence
58
+ # in the corpus will be ignored
59
+ # @option arguments [Number] :max_query_terms The maximum query terms to be included in the generated query
60
+ # @option arguments [Number] :max_word_len The minimum length of the word: longer words will be ignored
61
+ # @option arguments [Number] :min_doc_freq The word occurrence frequency as count: words with lower occurrence
62
+ # in the corpus will be ignored
63
+ # @option arguments [Number] :min_term_freq The term frequency as percent: terms with lower occurence
64
+ # in the source document will be ignored
65
+ # @option arguments [Number] :min_word_len The minimum length of the word: shorter words will be ignored
66
+ # @option arguments [List] :mlt_fields Specific fields to perform the query against
67
+ # @option arguments [Number] :percent_terms_to_match How many terms have to match in order to consider
68
+ # the document a match (default: 0.3)
69
+ # @option arguments [String] :routing Specific routing value
70
+ # @option arguments [Number] :search_from The offset from which to return results
71
+ # @option arguments [List] :search_indices A comma-separated list of indices to perform the query against
72
+ # (default: the index containing the document)
73
+ # @option arguments [String] :search_query_hint The search query hint
74
+ # @option arguments [String] :search_scroll A scroll search request definition
75
+ # @option arguments [Number] :search_size The number of documents to return (default: 10)
76
+ # @option arguments [String] :search_source A specific search request definition (instead of using the request body)
77
+ # @option arguments [String] :search_type Specific search type (eg. `dfs_then_fetch`, `count`, etc)
78
+ # @option arguments [List] :search_types A comma-separated list of types to perform the query against
79
+ # (default: the same type as the document)
80
+ # @option arguments [List] :stop_words A list of stop words to be ignored
81
+ #
82
+ # @see http://elasticsearch.org/guide/reference/api/more-like-this/
83
+ #
84
+ def mlt(arguments={})
85
+ raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
86
+ raise ArgumentError, "Required argument 'type' missing" unless arguments[:type]
87
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
88
+ method = HTTP_GET
89
+ path = Utils.__pathify Utils.__escape(arguments[:index]),
90
+ Utils.__escape(arguments[:type]),
91
+ Utils.__escape(arguments[:id]),
92
+ '_mlt'
93
+
94
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
95
+
96
+ [:mlt_fields, :search_indices, :search_types, :stop_words].each do |name|
97
+ params[name] = Utils.__listify(params[name]) if params[name]
98
+ end
99
+
100
+ body = arguments[:body]
101
+
102
+ perform_request(method, path, params, body).body
103
+ end
104
+
105
+ # Register this action with its valid params when the module is loaded.
106
+ #
107
+ # @since 6.2.0
108
+ ParamsRegistry.register(:mlt, [
109
+ :boost_terms,
110
+ :max_doc_freq,
111
+ :max_query_terms,
112
+ :max_word_len,
113
+ :min_doc_freq,
114
+ :min_term_freq,
115
+ :min_word_len,
116
+ :mlt_fields,
117
+ :percent_terms_to_match,
118
+ :routing,
119
+ :search_from,
120
+ :search_indices,
121
+ :search_query_hint,
122
+ :search_scroll,
123
+ :search_size,
124
+ :search_source,
125
+ :search_type,
126
+ :search_types,
127
+ :stop_words ].freeze)
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,62 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Actions
4
+
5
+ # Perform multiple percolate operations in a single request, similar to the {#msearch} API
6
+ #
7
+ # Pass the percolate definitions as header-body pairs in the `:body` argument, as an Array of Hashes.
8
+ #
9
+ # @example Perform two different percolations in a single request
10
+ #
11
+ # client.mpercolate \
12
+ # body: [
13
+ # { percolate: { index: "my-index", type: "my-type" } },
14
+ # { doc: { message: "foo bar" } },
15
+ # { percolate: { index: "my-other-index", type: "my-other-type", id: "1" } },
16
+ # { }
17
+ # ]
18
+ #
19
+ # @option arguments [String] :index The index of the document being count percolated to use as default
20
+ # @option arguments [String] :type The type of the document being percolated to use as default.
21
+ # @option arguments [Array<Hash>] The percolate request definitions (header & body pairs) (*Required*)
22
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
23
+ # unavailable (missing or closed)
24
+ # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into
25
+ # no concrete indices. (This includes `_all` string or when no
26
+ # indices have been specified)
27
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are
28
+ # open, closed or both. (options: open, closed)
29
+ #
30
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-percolate.html
31
+ #
32
+ def mpercolate(arguments={})
33
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
34
+ method = HTTP_GET
35
+ path = "_mpercolate"
36
+
37
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
38
+ body = arguments[:body]
39
+
40
+ case
41
+ when body.is_a?(Array)
42
+ payload = body.map { |d| d.is_a?(String) ? d : Elasticsearch::API.serializer.dump(d) }
43
+ payload << "" unless payload.empty?
44
+ payload = payload.join("\n")
45
+ else
46
+ payload = body
47
+ end
48
+
49
+ perform_request(method, path, params, payload).body
50
+ end
51
+
52
+ # Register this action with its valid params when the module is loaded.
53
+ #
54
+ # @since 6.2.0
55
+ ParamsRegistry.register(:mpercolate, [
56
+ :ignore_unavailable,
57
+ :allow_no_indices,
58
+ :expand_wildcards,
59
+ :percolate_format ].freeze)
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,39 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Nodes
4
+ module Actions
5
+
6
+ # Shutdown one or all nodes
7
+ #
8
+ # @example Shut down node named _Bloke_
9
+ #
10
+ # client.nodes.shutdown node_id: 'Bloke'
11
+ #
12
+ # @option arguments [List] :node_id A comma-separated list of node IDs or names to perform the operation on; use
13
+ # `_local` to shutdown the node you're connected to, leave empty to
14
+ # shutdown all nodes
15
+ # @option arguments [Time] :delay Set the delay for the operation (default: 1s)
16
+ # @option arguments [Boolean] :exit Exit the JVM as well (default: true)
17
+ #
18
+ # @see http://elasticsearch.org/guide/reference/api/admin-cluster-nodes-shutdown/
19
+ #
20
+ def shutdown(arguments={})
21
+ method = HTTP_POST
22
+ path = Utils.__pathify '_cluster/nodes', Utils.__listify(arguments[:node_id]), '_shutdown'
23
+
24
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
25
+ body = nil
26
+
27
+ perform_request(method, path, params, body).body
28
+ end
29
+
30
+ # Register this action with its valid params when the module is loaded.
31
+ #
32
+ # @since 6.2.0
33
+ ParamsRegistry.register(:shutdown, [
34
+ :delay,
35
+ :exit ].freeze)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,73 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Actions
4
+
5
+ # Return names of queries matching a document.
6
+ #
7
+ # Percolator allows you to register queries and then evaluate a document against them:
8
+ # the IDs of matching queries are returned in the response.
9
+ #
10
+ # @deprecated The `_percolate` API has been deprecated in favour of a special field mapping and the
11
+ # `percolate` query;
12
+ # see https://www.elastic.co/guide/en/elasticsearch/reference/5.5/breaking_50_percolator.html
13
+ #
14
+ # See full example for Elasticsearch 5.x and higher in <https://github.com/elastic/elasticsearch-ruby/blob/master/examples/percolator/percolator_alerts.rb>
15
+ #
16
+ # @option arguments [String] :index The index of the document being percolated. (*Required*)
17
+ # @option arguments [String] :type The type of the document being percolated. (*Required*)
18
+ # @option arguments [String] :id Fetch the document specified by index/type/id and
19
+ # use it instead of the passed `doc`
20
+ # @option arguments [Hash] :body The percolator request definition using the percolate DSL
21
+ # @option arguments [List] :routing A comma-separated list of specific routing values
22
+ # @option arguments [String] :preference Specify the node or shard the operation should be performed on
23
+ # (default: random)
24
+ # @option arguments [Boolean] :ignore_unavailable Whether specified concrete indices should be ignored when
25
+ # unavailable (missing or closed)
26
+ # @option arguments [Boolean] :allow_no_indices Whether to ignore if a wildcard indices expression resolves into
27
+ # no concrete indices. (This includes `_all` string or when no
28
+ # indices have been specified)
29
+ # @option arguments [String] :expand_wildcards Whether to expand wildcard expression to concrete indices that are
30
+ # open, closed or both. (options: open, closed)
31
+ # @option arguments [String] :percolate_index The index to percolate the document into. Defaults to passed `index`.
32
+ # @option arguments [String] :percolate_format Return an array of matching query IDs instead of objects.
33
+ # (options: ids)
34
+ # @option arguments [String] :percolate_type The type to percolate document into. Defaults to passed `type`.
35
+ # @option arguments [Number] :version Explicit version number for concurrency control
36
+ # @option arguments [String] :version_type Specific version type (options: internal, external, external_gte, force)
37
+ #
38
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-percolate.html
39
+ #
40
+ def percolate(arguments={})
41
+ Utils.__report_unsupported_method :percolate
42
+
43
+ raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
44
+ raise ArgumentError, "Required argument 'type' missing" unless arguments[:type]
45
+ method = HTTP_GET
46
+ path = Utils.__pathify Utils.__escape(arguments[:index]),
47
+ Utils.__escape(arguments[:type]),
48
+ Utils.__escape(arguments[:id]),
49
+ '_percolate'
50
+
51
+ params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)
52
+ body = arguments[:body]
53
+
54
+ perform_request(method, path, params, body).body
55
+ end
56
+
57
+ # Register this action with its valid params when the module is loaded.
58
+ #
59
+ # @since 6.2.0
60
+ ParamsRegistry.register(:percolate, [
61
+ :routing,
62
+ :preference,
63
+ :ignore_unavailable,
64
+ :allow_no_indices,
65
+ :expand_wildcards,
66
+ :percolate_index,
67
+ :percolate_type,
68
+ :percolate_format,
69
+ :version,
70
+ :version_type ].freeze)
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,25 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Actions
4
+
5
+ # Store a template for the search definition in Elasticsearch,
6
+ # to be later used with the `search_template` method
7
+ #
8
+ # @option arguments [String] :id Template ID (*Required*)
9
+ # @option arguments [Hash] :body The document (*Required*)
10
+ #
11
+ # @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/master/search-template.html
12
+ #
13
+ def put_template(arguments={})
14
+ raise ArgumentError, "Required argument 'id' missing" unless arguments[:id]
15
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
16
+ method = HTTP_POST
17
+ path = "_scripts/#{arguments[:id]}"
18
+ params = {}
19
+ body = arguments[:body]
20
+
21
+ perform_request(method, path, params, body).body
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,21 @@
1
+ module Elasticsearch
2
+ module API
3
+ module Remote
4
+ module Actions
5
+
6
+ # Returns all of the configured remote cluster information
7
+ #
8
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/master/remote-info.html
9
+ #
10
+ def info(arguments={})
11
+ method = HTTP_GET
12
+ path = "_remote/info"
13
+ params = {}
14
+ body = nil
15
+
16
+ perform_request(method, path, params, body).body
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end