eson-core 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +2 -2
- data/eson-core.gemspec +2 -1
- data/lib/eson-core.rb +5 -0
- data/lib/eson/api.rb +61 -12
- data/lib/eson/chainable.rb +3 -3
- data/lib/eson/client.rb +699 -180
- data/lib/eson/error.rb +10 -2
- data/lib/eson/request.rb +57 -16
- data/lib/eson/shared/cluster/health.rb +9 -2
- data/lib/eson/shared/cluster/nodes.rb +9 -1
- data/lib/eson/shared/cluster/shutdown.rb +9 -1
- data/lib/eson/shared/cluster/state.rb +9 -1
- data/lib/eson/shared/cluster/stats.rb +9 -1
- data/lib/eson/shared/core/bulk.rb +9 -1
- data/lib/eson/shared/core/count.rb +10 -1
- data/lib/eson/shared/core/delete.rb +10 -1
- data/lib/eson/shared/core/delete_by_query.rb +10 -1
- data/lib/eson/shared/core/explain.rb +44 -0
- data/lib/eson/shared/core/get.rb +9 -1
- data/lib/eson/shared/core/index.rb +13 -2
- data/lib/eson/shared/core/mget.rb +12 -3
- data/lib/eson/shared/core/more_like_this.rb +10 -1
- data/lib/eson/shared/core/msearch.rb +10 -1
- data/lib/eson/shared/core/percolate.rb +10 -1
- data/lib/eson/shared/core/scroll.rb +17 -0
- data/lib/eson/shared/core/search.rb +15 -3
- data/lib/eson/shared/core/simple_search.rb +9 -1
- data/lib/eson/shared/core/update.rb +33 -0
- data/lib/eson/shared/core/validate.rb +50 -0
- data/lib/eson/shared/indices/aliases.rb +37 -9
- data/lib/eson/shared/indices/analyze.rb +9 -2
- data/lib/eson/shared/indices/clear_cache.rb +9 -1
- data/lib/eson/shared/indices/close_index.rb +8 -1
- data/lib/eson/shared/indices/create_index.rb +10 -1
- data/lib/eson/shared/indices/delete_index.rb +8 -1
- data/lib/eson/shared/indices/delete_mapping.rb +9 -1
- data/lib/eson/shared/indices/delete_template.rb +8 -1
- data/lib/eson/shared/indices/exists.rb +8 -1
- data/lib/eson/shared/indices/flush.rb +9 -1
- data/lib/eson/shared/indices/get_aliases.rb +16 -0
- data/lib/eson/shared/indices/get_mapping.rb +9 -1
- data/lib/eson/shared/indices/get_settings.rb +8 -1
- data/lib/eson/shared/indices/get_template.rb +8 -1
- data/lib/eson/shared/indices/open_index.rb +8 -1
- data/lib/eson/shared/indices/optimize.rb +9 -1
- data/lib/eson/shared/indices/put_mapping.rb +10 -1
- data/lib/eson/shared/indices/put_template.rb +9 -1
- data/lib/eson/shared/indices/refresh.rb +9 -1
- data/lib/eson/shared/indices/segments.rb +8 -1
- data/lib/eson/shared/indices/snapshot.rb +8 -1
- data/lib/eson/shared/indices/stats.rb +9 -1
- data/lib/eson/shared/indices/status.rb +8 -1
- data/lib/eson/shared/indices/update_settings.rb +10 -1
- metadata +7 -8
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rake/testtask'
|
2
|
-
require '
|
2
|
+
require 'rubygems/package_task'
|
3
3
|
require 'rake/testtask'
|
4
4
|
|
5
5
|
def gemspec
|
@@ -14,7 +14,7 @@ task :gemspec do
|
|
14
14
|
gemspec.validate
|
15
15
|
end
|
16
16
|
|
17
|
-
|
17
|
+
Gem::PackageTask.new(gemspec) do |pkg|
|
18
18
|
pkg.gem_spec = gemspec
|
19
19
|
end
|
20
20
|
|
data/eson-core.gemspec
CHANGED
@@ -3,7 +3,8 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "eson-core"
|
6
|
-
s.version = "0.
|
6
|
+
s.version = "0.8.0"
|
7
|
+
|
7
8
|
s.platform = Gem::Platform::RUBY
|
8
9
|
s.authors = ["Florian Gilcher"]
|
9
10
|
s.email = ["florian.gilcher@asquera.de"]
|
data/lib/eson-core.rb
CHANGED
@@ -14,9 +14,13 @@ require 'eson/shared/core/bulk'
|
|
14
14
|
require 'eson/shared/core/percolate'
|
15
15
|
require 'eson/shared/core/simple_search'
|
16
16
|
require 'eson/shared/core/more_like_this'
|
17
|
+
require 'eson/shared/core/update'
|
17
18
|
require 'eson/shared/core/msearch'
|
18
19
|
require 'eson/shared/core/mget'
|
19
20
|
require 'eson/shared/core/delete_by_query'
|
21
|
+
require 'eson/shared/core/scroll'
|
22
|
+
require 'eson/shared/core/validate'
|
23
|
+
require 'eson/shared/core/explain'
|
20
24
|
|
21
25
|
require 'eson/shared/cluster/health'
|
22
26
|
require 'eson/shared/cluster/state'
|
@@ -25,6 +29,7 @@ require 'eson/shared/cluster/stats'
|
|
25
29
|
require 'eson/shared/cluster/shutdown'
|
26
30
|
|
27
31
|
require 'eson/shared/indices/aliases'
|
32
|
+
require 'eson/shared/indices/get_aliases'
|
28
33
|
require 'eson/shared/indices/analyze'
|
29
34
|
require 'eson/shared/indices/clear_cache'
|
30
35
|
require 'eson/shared/indices/close_index'
|
data/lib/eson/api.rb
CHANGED
@@ -1,7 +1,18 @@
|
|
1
1
|
module Eson
|
2
|
+
# Objects including API act as API descriptions. They mostly act as a
|
3
|
+
# description of parameter names and roles to use in protocol implementations.
|
4
|
+
# Parameters are split in 2 sets: all parameters (params) and parameters
|
5
|
+
# that are transmitted in the body of a request (if the protocol has a
|
6
|
+
# notion of "body"). These descriptions are intended to be refined by
|
7
|
+
# protocol implementations.
|
8
|
+
#
|
9
|
+
# For examples of this strategy, see {Eson::Shared::Index} and
|
10
|
+
# {Eson::HTTP::Index}.
|
2
11
|
module API
|
3
12
|
include Chainable
|
4
|
-
|
13
|
+
|
14
|
+
# Designates the names of all parameters supported by this request, including
|
15
|
+
# those used in the source later on.
|
5
16
|
def parameters(*params)
|
6
17
|
chainable do
|
7
18
|
define_method :parameters do
|
@@ -13,21 +24,25 @@ module Eson
|
|
13
24
|
end
|
14
25
|
end
|
15
26
|
end
|
16
|
-
|
27
|
+
|
17
28
|
# Designates the name of the parameter that will be used as the
|
18
29
|
# body of the request. Use only if the API has such a parameter (e.g. Search).
|
19
|
-
# You still have to list
|
20
|
-
#
|
30
|
+
# You still have to list the parameter.
|
31
|
+
#
|
21
32
|
# If multiple parameters are given, they will act as the keys in the sent
|
22
33
|
# JSON object.
|
23
34
|
#
|
35
|
+
# If the transport has no concept of a "source", this should be ignored.
|
36
|
+
#
|
24
37
|
# @example source_param call
|
38
|
+
# parameters :settings, :mappings
|
25
39
|
# source_param :settings, :mappings
|
26
40
|
# @example result
|
27
41
|
# {
|
28
42
|
# "settings" : {...},
|
29
43
|
# "mappings" : {...}
|
30
44
|
# }
|
45
|
+
#
|
31
46
|
def source_param(*params)
|
32
47
|
if params.length == 1
|
33
48
|
params = params.first
|
@@ -37,27 +52,61 @@ module Eson
|
|
37
52
|
params
|
38
53
|
end
|
39
54
|
end
|
40
|
-
|
55
|
+
|
56
|
+
# Indicates whether the api accepts multiple indices like `["index1", "index2"]
|
41
57
|
def multi_index(bool)
|
42
58
|
define_method :multi_index do
|
43
59
|
bool
|
44
60
|
end
|
45
61
|
end
|
46
|
-
|
62
|
+
|
63
|
+
# Indicates whether the api accepts multiple types like `["type1", "type2"]
|
47
64
|
def multi_types(bool)
|
48
65
|
define_method :multi_types do
|
49
66
|
bool
|
50
67
|
end
|
51
68
|
end
|
52
|
-
|
69
|
+
|
70
|
+
# Indicates whether the api does not operate on an index at all.
|
53
71
|
def no_indices(bool)
|
54
72
|
define_method :no_indices do
|
55
73
|
bool
|
56
74
|
end
|
57
75
|
end
|
58
|
-
|
59
|
-
def register(mod)
|
60
|
-
include(mod)
|
61
|
-
end
|
62
76
|
end
|
63
|
-
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# @!macro parameters
|
80
|
+
# The request supports the following parameters: ${1--1}
|
81
|
+
#
|
82
|
+
# @method parameters
|
83
|
+
# @return [Array<String>] The parameters
|
84
|
+
|
85
|
+
# @!macro source_param
|
86
|
+
# The request declares the following parameters as source parameters: ${1--1}
|
87
|
+
#
|
88
|
+
# @method source_param
|
89
|
+
# @return [Array<String>] The source parameters
|
90
|
+
|
91
|
+
# @!macro multi_index
|
92
|
+
# The request can operate on multiple indices.
|
93
|
+
#
|
94
|
+
# @method multi_index
|
95
|
+
# @return [true]
|
96
|
+
|
97
|
+
# @!macro no_multi_index
|
98
|
+
# The request does not operate on multiple indices.
|
99
|
+
#
|
100
|
+
# @method multi_index
|
101
|
+
# @return [false]
|
102
|
+
|
103
|
+
# @!macro multi_types
|
104
|
+
# The request can operate on multiple types.
|
105
|
+
#
|
106
|
+
# @method multi_types
|
107
|
+
# @return [true]
|
108
|
+
|
109
|
+
# @!macro no_multi_types
|
110
|
+
# The request cannot operate on multiple types.
|
111
|
+
# @method multi_types
|
112
|
+
# @return [false]
|
data/lib/eson/chainable.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
# code from the datamapper project. See http://datamapper.org
|
2
2
|
|
3
3
|
module Eson
|
4
|
+
# @api internal
|
4
5
|
module Chainable
|
5
|
-
|
6
|
-
# @api private
|
6
|
+
# @api internal
|
7
7
|
def chainable(&block)
|
8
8
|
mod = Module.new(&block)
|
9
9
|
include mod
|
10
10
|
mod
|
11
11
|
end
|
12
12
|
|
13
|
-
# @api
|
13
|
+
# @api internal
|
14
14
|
def extendable(&block)
|
15
15
|
mod = Module.new(&block)
|
16
16
|
extend mod
|
data/lib/eson/client.rb
CHANGED
@@ -1,100 +1,288 @@
|
|
1
|
+
# @!macro request
|
2
|
+
# Creates a $0 request.
|
3
|
+
# @api requests
|
4
|
+
|
5
|
+
# @!macro immediate
|
6
|
+
# @overload
|
7
|
+
# With a block given, this will return a result.
|
8
|
+
# @return [Object] result
|
9
|
+
# @overload
|
10
|
+
# Without immediate, this will method returns an request object.
|
11
|
+
# @return [Eson::API] the request
|
12
|
+
# @param [true,false] immediate Whether to immediately call the request or not.
|
13
|
+
|
1
14
|
module Eson
|
15
|
+
# Eson::Client is a protocol-agnostic client to elasticsearch. For an example
|
16
|
+
# of a protocol implementation, see {Eson::HTTP}. The client primarily
|
17
|
+
# constructs {Eson::Request} objects. In default mode, it also calls the
|
18
|
+
# backend immediately. This behaviour can be controlled using the parameter
|
19
|
+
# `auto_call`.
|
20
|
+
#
|
21
|
+
# The client (like most parts of Eson) holds no state and can be reused. All
|
22
|
+
# operations that change parameters return a new Client object.
|
23
|
+
#
|
24
|
+
# By default, the client returns the backend response as a raw
|
25
|
+
# backend response, unless a set of plugins is specified.
|
26
|
+
#
|
27
|
+
# It is recommendable to use protocol-specific subclasses like
|
28
|
+
# {Eson::HTTP::Client} because they set sane defaults for the plugin-set and
|
29
|
+
# return better consumable data.
|
30
|
+
#
|
31
|
+
# @example Constructing an HTTP client
|
32
|
+
# c = Eson::Client.new(:server => "http://127.0.0.1:9200",
|
33
|
+
# :protocol => Eson::HTTP,
|
34
|
+
# :plugins => [Eson::ResponseParser],
|
35
|
+
# :logger => 'test/test.log')
|
36
|
+
#
|
37
|
+
#
|
2
38
|
class Client
|
3
39
|
attr_accessor :server
|
4
40
|
attr_accessor :index_name
|
5
|
-
attr_accessor :
|
41
|
+
attr_accessor :default_parameters
|
6
42
|
attr_accessor :protocol
|
7
43
|
attr_accessor :plugins
|
8
44
|
attr_accessor :opts
|
9
45
|
attr_accessor :auto_call
|
10
|
-
|
46
|
+
attr_accessor :logger
|
47
|
+
|
48
|
+
alias :node :server
|
49
|
+
|
50
|
+
# Default settings
|
11
51
|
DEFAULT_OPTS = {
|
12
52
|
:server => 'http://127.0.0.1:9200',
|
13
53
|
:plugins => [],
|
14
54
|
:logger => nil,
|
15
|
-
:
|
55
|
+
:default_parameters => { :index => "default" }
|
16
56
|
}
|
17
|
-
|
18
|
-
#
|
57
|
+
|
58
|
+
# Create a new client. The client object is protocol-independent, but uses
|
59
|
+
# Eson::HTTP by default.
|
60
|
+
#
|
61
|
+
# @param [Hash] opts the options to create the client with.
|
62
|
+
# @option opts [String] :server ('http://127.0.0.1:9200') The base url of the server to connect to.
|
63
|
+
# @option opts [Module] :protocol (Eson::HTTP) The module providing the protocol implementation.
|
64
|
+
# @option opts [Array<Module>] :plugins ([]) An array of plugin modules
|
65
|
+
# @option opts [String, #<<] :logger (nil) A logger object or a String pointing to a log file.
|
66
|
+
# @option opts [true,false] :auto_call (true) Whether to immeditately run the request or return the
|
67
|
+
# request object instead.
|
68
|
+
# @option opts [Hash] :auth (nil) Authentication information depending on protocol
|
19
69
|
def initialize(opts = {})
|
20
70
|
opts = DEFAULT_OPTS.merge(opts)
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
self.
|
25
|
-
|
26
|
-
self.
|
27
|
-
|
71
|
+
self.opts = opts
|
72
|
+
opts = opts.clone
|
73
|
+
|
74
|
+
self.server = opts.delete(:server)
|
75
|
+
default_index = opts.delete(:default_index)
|
76
|
+
self.protocol = opts.delete(:protocol) || Eson::HTTP
|
77
|
+
self.plugins = opts.delete(:plugins)
|
78
|
+
self.logger = opts.delete(:logger)
|
79
|
+
self.auto_call = opts.delete(:auto_call)
|
80
|
+
|
81
|
+
self.default_parameters = opts.delete(:default_parameters) || {}
|
82
|
+
|
83
|
+
if default_index
|
84
|
+
default_parameters[:index] ||= default_index
|
85
|
+
end
|
86
|
+
|
87
|
+
if self.auto_call.nil?
|
28
88
|
self.auto_call = true
|
29
|
-
else
|
30
|
-
self.auto_call = opts[:auto_call]
|
31
89
|
end
|
32
|
-
self.opts = opts
|
33
90
|
end
|
34
91
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
92
|
+
# @deprecated
|
93
|
+
def default_index=(index_name)
|
94
|
+
default_index[:index] = index_name
|
95
|
+
end
|
96
|
+
|
97
|
+
# Returns a clone of this client with new {#default_parameters}. The
|
98
|
+
# old parameters are merged with the new ones.
|
99
|
+
#
|
100
|
+
# @param [Hash] params The new parameters
|
101
|
+
#
|
102
|
+
# @return [Eson::Client] a clone of the client with the new parameters set.
|
103
|
+
def with(params = {})
|
104
|
+
client = self.clone
|
105
|
+
client.default_parameters = default_parameters.merge(params)
|
106
|
+
|
107
|
+
if block_given?
|
108
|
+
yield client
|
109
|
+
else
|
110
|
+
client
|
111
|
+
end
|
45
112
|
end
|
46
|
-
|
113
|
+
|
114
|
+
# Check whether the client has auth options set at all.
|
115
|
+
#
|
116
|
+
# @return [true,false] Whether auth parameters are set.
|
117
|
+
# @api internal
|
47
118
|
def auth?
|
48
119
|
!!opts[:auth]
|
49
120
|
end
|
50
|
-
|
121
|
+
|
122
|
+
# Returns the auth parameters
|
123
|
+
#
|
124
|
+
# @api interal
|
125
|
+
# @return [Hash] The auth parameters
|
51
126
|
def auth
|
52
127
|
opts[:auth]
|
53
128
|
end
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
129
|
+
|
130
|
+
# Set the logger.
|
131
|
+
#
|
132
|
+
# @overload
|
133
|
+
# @param [Logger, #<<] The logger object
|
134
|
+
# @overload
|
135
|
+
# @param [String] A filepath to log to
|
136
|
+
def logger=(logger)
|
137
|
+
if String === logger
|
138
|
+
require 'logger'
|
139
|
+
@logger = Logger.new(logger)
|
140
|
+
else
|
141
|
+
@logger = logger
|
142
|
+
end
|
63
143
|
end
|
64
|
-
|
144
|
+
|
145
|
+
# @!group Requests
|
146
|
+
|
147
|
+
# @!macro request
|
148
|
+
# @!macro immediate
|
149
|
+
#
|
150
|
+
# {include:Index#parameters}
|
151
|
+
# {include:Index#source_param}
|
152
|
+
# {include:Index#multi_index}
|
153
|
+
# {include:Index#multi_types}
|
154
|
+
#
|
155
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Index}.
|
65
156
|
def index(args = {}, immediate = auto_call)
|
66
157
|
request(protocol::Index, args, immediate)
|
67
158
|
end
|
68
159
|
|
160
|
+
# @!macro request
|
161
|
+
# @!macro immediate
|
162
|
+
#
|
163
|
+
# {include:Delete#parameters}
|
164
|
+
# {include:Delete#source_param}
|
165
|
+
# {include:Delete#multi_index}
|
166
|
+
# {include:Delete#multi_types}
|
167
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Delete}.
|
69
168
|
def delete(args = {}, immediate = auto_call)
|
70
169
|
request(protocol::Delete, args, immediate)
|
71
170
|
end
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
171
|
+
|
172
|
+
# @!macro request
|
173
|
+
# @!macro immediate
|
174
|
+
#
|
175
|
+
# {include:Get#parameters}
|
176
|
+
# {include:Get#source_param}
|
177
|
+
# {include:Get#multi_index}
|
178
|
+
# {include:Get#multi_types}
|
179
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Get}.
|
180
|
+
def get(args = {}, immediate = auto_call)
|
181
|
+
request(protocol::Get, args, immediate)
|
182
|
+
end
|
183
|
+
|
184
|
+
# @!macro request
|
185
|
+
# @!macro immediate
|
186
|
+
#
|
187
|
+
# {include:MGet#parameters}
|
188
|
+
# {include:MGet#source_param}
|
189
|
+
# {include:MGet#multi_index}
|
190
|
+
# {include:MGet#multi_types}
|
191
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::MGet}.
|
192
|
+
def mget(args = {}, immediate = auto_call)
|
193
|
+
request(protocol::MultiGet, args, immediate)
|
194
|
+
end
|
195
|
+
|
196
|
+
# @!macro request
|
197
|
+
# @!macro immediate
|
198
|
+
#
|
199
|
+
# {include:Search#parameters}
|
200
|
+
# {include:Search#source_param}
|
201
|
+
# {include:Search#multi_index}
|
202
|
+
# {include:Search#multi_types}
|
203
|
+
#
|
204
|
+
# @yield If eson-dsl is used, the given block will be used as DSL defintion.
|
205
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Search}.
|
81
206
|
def search(args = {}, immediate = auto_call, &block)
|
82
207
|
request(protocol::Search, args, immediate, &block)
|
83
208
|
end
|
84
209
|
alias :query :search
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
210
|
+
|
211
|
+
# @!macro request
|
212
|
+
# @!macro immediate
|
213
|
+
#
|
214
|
+
# {include:Scroll#parameters}
|
215
|
+
# {include:Scroll#source_param}
|
216
|
+
# {include:Scroll#multi_index}
|
217
|
+
# {include:Scroll#multi_types}
|
218
|
+
#
|
219
|
+
# @yield If eson-dsl is used, the given block will be used as DSL defintion.
|
220
|
+
def scroll(args = {}, immediate = auto_call, &block)
|
221
|
+
request(protocol::Scroll, args, immediate, &block)
|
222
|
+
end
|
223
|
+
|
224
|
+
# @!macro request
|
225
|
+
# @!macro immediate
|
226
|
+
#
|
227
|
+
# {include:SimpleSearch#parameters}
|
228
|
+
# {include:SimpleSearch#source_param}
|
229
|
+
# {include:SimpleSearch#multi_index}
|
230
|
+
# {include:SimpleSearch#multi_types}
|
231
|
+
#
|
232
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::SimpleSearch}.
|
233
|
+
def simple_search(args = {}, immediate = auto_call)
|
234
|
+
request(protocol::SimpleSearch, args, immediate)
|
235
|
+
end
|
236
|
+
|
237
|
+
# @!macro request
|
238
|
+
# @!macro immediate
|
239
|
+
#
|
240
|
+
# {include:Count#parameters}
|
241
|
+
# {include:Count#source_param}
|
242
|
+
# {include:Count#multi_index}
|
243
|
+
# {include:Count#multi_types}
|
244
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Count}.
|
245
|
+
def count(args = {}, immediate = auto_call)
|
246
|
+
request(protocol::Count, args, immediate)
|
247
|
+
end
|
248
|
+
|
249
|
+
# @!macro request
|
250
|
+
# @!macro immediate
|
251
|
+
#
|
252
|
+
# {include:Update#parameters}
|
253
|
+
# {include:Update#source_param}
|
254
|
+
# {include:Update#multi_index}
|
255
|
+
# {include:Update#multi_types}
|
256
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Update}.
|
257
|
+
def update(args = {}, immediate = auto_call)
|
258
|
+
request(protocol::Update, args, immediate)
|
259
|
+
end
|
260
|
+
|
261
|
+
# @!macro request
|
262
|
+
# @!macro immediate
|
263
|
+
#
|
264
|
+
# {include:Percolate#parameters}
|
265
|
+
# {include:Percolate#source_param}
|
266
|
+
# {include:Percolate#multi_index}
|
267
|
+
# {include:Percolate#multi_types}
|
268
|
+
#
|
269
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Percolate}.
|
270
|
+
def percolate(args = {}, immediate = auto_call, &block)
|
271
|
+
request(protocol::Percolate, args, immediate, &block)
|
272
|
+
end
|
273
|
+
|
274
|
+
# @!macro request
|
275
|
+
#
|
276
|
+
# {include:Bulk#parameters}
|
277
|
+
# {include:Bulk#source_param}
|
278
|
+
# {include:Bulk#multi_index}
|
279
|
+
# {include:Bulk#multi_types}
|
280
|
+
#
|
281
|
+
# If this method is called with a block, the request is immediately called.
|
282
|
+
# With no block given, the request will be returned.
|
283
|
+
#
|
284
|
+
# @yield The block is evaluated to create the subrequests.
|
285
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Bulk}.
|
98
286
|
def bulk(args = {}, &block)
|
99
287
|
if block_given?
|
100
288
|
request(protocol::Bulk, args, &block)
|
@@ -102,7 +290,19 @@ module Eson
|
|
102
290
|
request(protocol::Bulk, args, false)
|
103
291
|
end
|
104
292
|
end
|
105
|
-
|
293
|
+
|
294
|
+
# @!macro request
|
295
|
+
#
|
296
|
+
# {include:MultiSearch#parameters}
|
297
|
+
# {include:MultiSearch#source_param}
|
298
|
+
# {include:MultiSearch#multi_index}
|
299
|
+
# {include:MultiSearch#multi_types}
|
300
|
+
#
|
301
|
+
# If this method is called with a block, the request is immediately called.
|
302
|
+
# With no block given, the request will be returned.
|
303
|
+
#
|
304
|
+
# @yield The block is evaluated to create the subrequests.
|
305
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::MultiSearch}.
|
106
306
|
def msearch(args = {}, &block)
|
107
307
|
if block_given?
|
108
308
|
request(protocol::MultiSearch, args, &block)
|
@@ -110,134 +310,453 @@ module Eson
|
|
110
310
|
request(protocol::MultiSearch, args, false)
|
111
311
|
end
|
112
312
|
end
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
def
|
139
|
-
request(protocol::
|
140
|
-
end
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
def
|
191
|
-
request(protocol::
|
192
|
-
end
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
def
|
207
|
-
request(protocol::
|
208
|
-
end
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
313
|
+
|
314
|
+
# @!macro request
|
315
|
+
# @!macro immediate
|
316
|
+
#
|
317
|
+
# {include:DeleteByQuery#parameters}
|
318
|
+
# {include:DeleteByQuery#source_param}
|
319
|
+
# {include:DeleteByQuery#multi_index}
|
320
|
+
# {include:DeleteByQuery#multi_types}
|
321
|
+
#
|
322
|
+
# @yield If eson-dsl is used, the given block will be used as DSL defintion.
|
323
|
+
# # @param [Hash] args The arguments, as given in {Eson::Shared::DeleteByQuery}.
|
324
|
+
def delete_by_query(args = {}, immediate = auto_call, &block)
|
325
|
+
request(protocol::DeleteByQuery, args, immediate, &block)
|
326
|
+
end
|
327
|
+
|
328
|
+
# @!macro request
|
329
|
+
# @!macro immediate
|
330
|
+
#
|
331
|
+
# {include:MoreLikeThis#parameters}
|
332
|
+
# {include:MoreLikeThis#source_param}
|
333
|
+
# {include:MoreLikeThis#multi_index}
|
334
|
+
# {include:MoreLikeThis#multi_types}
|
335
|
+
#
|
336
|
+
# @yield If eson-dsl is used, the given block will be used as DSL defintion.
|
337
|
+
# # @param [Hash] args The arguments, as given in {Eson::Shared::MoreLikeThis}.
|
338
|
+
def more_like_this(args = {}, immediate = auto_call)
|
339
|
+
request(protocol::MoreLikeThis, args, immediate)
|
340
|
+
end
|
341
|
+
|
342
|
+
# @!macro request
|
343
|
+
# @!macro immediate
|
344
|
+
#
|
345
|
+
# {include:Health#parameters}
|
346
|
+
# {include:Health#source_param}
|
347
|
+
# {include:Health#multi_index}
|
348
|
+
# {include:Health#multi_types}
|
349
|
+
#
|
350
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Health}.
|
351
|
+
def health(args = {}, immediate = auto_call)
|
352
|
+
request(protocol::Health, args, immediate)
|
353
|
+
end
|
354
|
+
|
355
|
+
# @!macro request
|
356
|
+
# @!macro immediate
|
357
|
+
#
|
358
|
+
# {include:State#parameters}
|
359
|
+
# {include:State#source_param}
|
360
|
+
# {include:State#multi_index}
|
361
|
+
# {include:State#multi_types}
|
362
|
+
#
|
363
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::State}.
|
364
|
+
def state(args = {}, immediate = auto_call)
|
365
|
+
request(protocol::State, args, immediate)
|
366
|
+
end
|
367
|
+
|
368
|
+
# @!macro request
|
369
|
+
# @!macro immediate
|
370
|
+
#
|
371
|
+
# {include:Stats#parameters}
|
372
|
+
# {include:Stats#source_param}
|
373
|
+
# {include:Stats#multi_index}
|
374
|
+
# {include:Stats#multi_types}
|
375
|
+
#
|
376
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Stats}.
|
377
|
+
def stats(args = {}, immediate = auto_call)
|
378
|
+
request(protocol::Stats, args, immediate)
|
379
|
+
end
|
380
|
+
|
381
|
+
# @!macro request
|
382
|
+
# @!macro immediate
|
383
|
+
#
|
384
|
+
# {include:Nodes#parameters}
|
385
|
+
# {include:Nodes#source_param}
|
386
|
+
# {include:Nodes#multi_index}
|
387
|
+
# {include:Nodes#multi_types}
|
388
|
+
#
|
389
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Nodes}.
|
390
|
+
def nodes(args = {}, immediate = auto_call)
|
391
|
+
request(protocol::Nodes, args, immediate)
|
392
|
+
end
|
393
|
+
|
394
|
+
# @!macro request
|
395
|
+
# @!macro immediate
|
396
|
+
#
|
397
|
+
# {include:Shutdown#parameters}
|
398
|
+
# {include:Shutdown#source_param}
|
399
|
+
# {include:Shutdown#multi_index}
|
400
|
+
# {include:Shutdown#multi_types}
|
401
|
+
#
|
402
|
+
# Please be aware that external node shutdown does not seem to be
|
403
|
+
# supported by ElasticSearch at the moment.
|
404
|
+
#
|
405
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Shutdown}.
|
406
|
+
def shutdown(args = {}, immediate = auto_call)
|
407
|
+
request(protocol::Shutdown, args, immediate)
|
408
|
+
end
|
409
|
+
|
410
|
+
# @!macro request
|
411
|
+
# @!macro immediate
|
412
|
+
#
|
413
|
+
# {include:Aliases#parameters}
|
414
|
+
# {include:Aliases#source_param}
|
415
|
+
# {include:Aliases#multi_index}
|
416
|
+
# {include:Aliases#multi_types}
|
417
|
+
#
|
418
|
+
# @yield The block is evaluated in the context of the request
|
419
|
+
# to define the aliases
|
420
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Aliases}.
|
421
|
+
def aliases(args = {}, immediate = auto_call, &block)
|
422
|
+
request(protocol::Aliases, args, immediate, &block)
|
423
|
+
end
|
424
|
+
|
425
|
+
# @!macro request
|
426
|
+
# @!macro immediate
|
427
|
+
#
|
428
|
+
# {include:GetAliases#parameters}
|
429
|
+
# {include:GetAliases#source_param}
|
430
|
+
# {include:GetAliases#multi_index}
|
431
|
+
# {include:GetAliases#multi_types}
|
432
|
+
#
|
433
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::GetAliases}.
|
434
|
+
def get_aliases(args = {}, immediate = auto_call, &block)
|
435
|
+
request(protocol::GetAliases, args, immediate, &block)
|
436
|
+
end
|
437
|
+
|
438
|
+
# @!macro request
|
439
|
+
# @!macro immediate
|
440
|
+
#
|
441
|
+
# {include:Analyze#parameters}
|
442
|
+
# {include:Analyze#source_param}
|
443
|
+
# {include:Analyze#multi_index}
|
444
|
+
# {include:Analyze#multi_types}
|
445
|
+
#
|
446
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Analyze}.
|
447
|
+
def analyze(args = {}, immediate = auto_call)
|
448
|
+
request(protocol::Analyze, args, immediate)
|
449
|
+
end
|
450
|
+
|
451
|
+
# @!macro request
|
452
|
+
# @!macro immediate
|
453
|
+
#
|
454
|
+
# {include:ClearCache#parameters}
|
455
|
+
# {include:ClearCache#source_param}
|
456
|
+
# {include:ClearCache#multi_index}
|
457
|
+
# {include:ClearCache#multi_types}
|
458
|
+
#
|
459
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::ClearCache}.
|
460
|
+
def clear_cache(args = {}, immediate = auto_call)
|
461
|
+
request(protocol::ClearCache, args, immediate)
|
462
|
+
end
|
463
|
+
|
464
|
+
# @!macro request
|
465
|
+
# @!macro immediate
|
466
|
+
#
|
467
|
+
# {include:CloseIndex#parameters}
|
468
|
+
# {include:CloseIndex#source_param}
|
469
|
+
# {include:CloseIndex#multi_index}
|
470
|
+
# {include:CloseIndex#multi_types}
|
471
|
+
#
|
472
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::CloseIndex}.
|
473
|
+
def close_index(args = {}, immediate = auto_call)
|
474
|
+
request(protocol::CloseIndex, args, immediate)
|
475
|
+
end
|
476
|
+
|
477
|
+
# @!macro request
|
478
|
+
# @!macro immediate
|
479
|
+
#
|
480
|
+
# {include:OpenIndex#parameters}
|
481
|
+
# {include:OpenIndex#source_param}
|
482
|
+
# {include:OpenIndex#multi_index}
|
483
|
+
# {include:OpenIndex#multi_types}
|
484
|
+
#
|
485
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::OpenIndex}.
|
486
|
+
def open_index(args = {}, immediate = auto_call)
|
487
|
+
request(protocol::OpenIndex, args, immediate)
|
488
|
+
end
|
489
|
+
|
490
|
+
# @!macro request
|
491
|
+
# @!macro immediate
|
492
|
+
#
|
493
|
+
# {include:CreateIndex#parameters}
|
494
|
+
# {include:CreateIndex#source_param}
|
495
|
+
# {include:CreateIndex#multi_index}
|
496
|
+
# {include:CreateIndex#multi_types}
|
497
|
+
#
|
498
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::CreateIndex}.
|
499
|
+
def create_index(args = {}, immediate = auto_call)
|
500
|
+
request(protocol::CreateIndex, args, immediate)
|
501
|
+
end
|
502
|
+
|
503
|
+
# @!macro request
|
504
|
+
# @!macro immediate
|
505
|
+
#
|
506
|
+
# {include:DeleteIndex#parameters}
|
507
|
+
# {include:DeleteIndex#source_param}
|
508
|
+
# {include:DeleteIndex#multi_index}
|
509
|
+
# {include:DeleteIndex#multi_types}
|
510
|
+
#
|
511
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::DeleteIndex}.
|
512
|
+
def delete_index(args = {}, immediate = auto_call)
|
513
|
+
request(protocol::DeleteIndex, args, immediate)
|
514
|
+
end
|
515
|
+
|
516
|
+
# @!macro request
|
517
|
+
# @!macro immediate
|
518
|
+
#
|
519
|
+
# {include:DeleteMapping#parameters}
|
520
|
+
# {include:DeleteMapping#source_param}
|
521
|
+
# {include:DeleteMapping#multi_index}
|
522
|
+
# {include:DeleteMapping#multi_types}
|
523
|
+
#
|
524
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::DeleteMapping}.
|
525
|
+
def delete_mapping(args = {}, immediate = auto_call)
|
526
|
+
request(protocol::DeleteMapping, args, immediate)
|
527
|
+
end
|
528
|
+
|
529
|
+
# @!macro request
|
530
|
+
# @!macro immediate
|
531
|
+
#
|
532
|
+
# {include:GetMapping#parameters}
|
533
|
+
# {include:GetMapping#source_param}
|
534
|
+
# {include:GetMapping#multi_index}
|
535
|
+
# {include:GetMapping#multi_types}
|
536
|
+
#
|
537
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::GetMapping}.
|
538
|
+
def get_mapping(args = {}, immediate = auto_call)
|
539
|
+
request(protocol::GetMapping, args, immediate)
|
540
|
+
end
|
541
|
+
|
542
|
+
# @!macro request
|
543
|
+
# @!macro immediate
|
544
|
+
#
|
545
|
+
# {include:PutMapping#parameters}
|
546
|
+
# {include:PutMapping#source_param}
|
547
|
+
# {include:PutMapping#multi_index}
|
548
|
+
# {include:PutMapping#multi_types}
|
549
|
+
#
|
550
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::PutMapping}.
|
551
|
+
def put_mapping(args = {}, immediate = auto_call)
|
552
|
+
request(protocol::PutMapping, args, immediate)
|
553
|
+
end
|
554
|
+
|
555
|
+
# @!macro request
|
556
|
+
# @!macro immediate
|
557
|
+
#
|
558
|
+
# {include:PutTemplate#parameters}
|
559
|
+
# {include:PutTemplate#source_param}
|
560
|
+
# {include:PutTemplate#multi_index}
|
561
|
+
# {include:PutTemplate#multi_types}
|
562
|
+
#
|
563
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::PutTemplate}.
|
564
|
+
def put_template(args = {}, immediate = auto_call)
|
565
|
+
request(protocol::PutTemplate, args, immediate)
|
566
|
+
end
|
567
|
+
|
568
|
+
# @!macro request
|
569
|
+
# @!macro immediate
|
570
|
+
#
|
571
|
+
# {include:GetTemplate#parameters}
|
572
|
+
# {include:GetTemplate#source_param}
|
573
|
+
# {include:GetTemplate#multi_index}
|
574
|
+
# {include:GetTemplate#multi_types}
|
575
|
+
#
|
576
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::GetTemplate}.
|
577
|
+
def get_template(args = {}, immediate = auto_call)
|
578
|
+
request(protocol::GetTemplate, args, immediate)
|
579
|
+
end
|
580
|
+
|
581
|
+
# @!macro request
|
582
|
+
# @!macro immediate
|
583
|
+
#
|
584
|
+
# {include:DeleteTemplate#parameters}
|
585
|
+
# {include:DeleteTemplate#source_param}
|
586
|
+
# {include:DeleteTemplate#multi_index}
|
587
|
+
# {include:DeleteTemplate#multi_types}
|
588
|
+
#
|
589
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::DeleteTemplate}.
|
590
|
+
def delete_template(args = {}, immediate = auto_call)
|
591
|
+
request(protocol::DeleteTemplate, args, immediate)
|
592
|
+
end
|
593
|
+
|
594
|
+
# @!macro request
|
595
|
+
# @!macro immediate
|
596
|
+
#
|
597
|
+
# {include:GetSettings#parameters}
|
598
|
+
# {include:GetSettings#source_param}
|
599
|
+
# {include:GetSettings#multi_index}
|
600
|
+
# {include:GetSettings#multi_types}
|
601
|
+
#
|
602
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::GetSettings}.
|
603
|
+
def get_settings(args = {}, immediate = auto_call)
|
604
|
+
request(protocol::GetSettings, args, immediate)
|
605
|
+
end
|
606
|
+
|
607
|
+
# @!macro request
|
608
|
+
# @!macro immediate
|
609
|
+
#
|
610
|
+
# {include:UpdateSettings#parameters}
|
611
|
+
# {include:UpdateSettings#source_param}
|
612
|
+
# {include:UpdateSettings#multi_index}
|
613
|
+
# {include:UpdateSettings#multi_types}
|
614
|
+
#
|
615
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::UpdateSettings}.
|
616
|
+
def update_settings(args = {}, immediate = auto_call)
|
617
|
+
request(protocol::UpdateSettings, args, immediate)
|
618
|
+
end
|
619
|
+
|
620
|
+
# @!macro request
|
621
|
+
# @!macro immediate
|
622
|
+
#
|
623
|
+
# {include:Flush#parameters}
|
624
|
+
# {include:Flush#source_param}
|
625
|
+
# {include:Flush#multi_index}
|
626
|
+
# {include:Flush#multi_types}
|
627
|
+
#
|
628
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Flush}.
|
629
|
+
def flush(args = {}, immediate = auto_call)
|
630
|
+
request(protocol::Flush, args, immediate)
|
631
|
+
end
|
632
|
+
|
633
|
+
# @!macro request
|
634
|
+
# @!macro immediate
|
635
|
+
#
|
636
|
+
# {include:Optimize#parameters}
|
637
|
+
# {include:Optimize#source_param}
|
638
|
+
# {include:Optimize#multi_index}
|
639
|
+
# {include:Optimize#multi_types}
|
640
|
+
#
|
641
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Optimize}.
|
642
|
+
def optimize(args = {}, immediate = auto_call)
|
643
|
+
request(protocol::Optimize, args, immediate)
|
644
|
+
end
|
645
|
+
|
646
|
+
# @!macro request
|
647
|
+
# @!macro immediate
|
648
|
+
#
|
649
|
+
# {include:Refresh#parameters}
|
650
|
+
# {include:Refresh#source_param}
|
651
|
+
# {include:Refresh#multi_index}
|
652
|
+
# {include:Refresh#multi_types}
|
653
|
+
#
|
654
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Refresh}.
|
655
|
+
def refresh(args = {}, immediate = auto_call)
|
656
|
+
request(protocol::Refresh, args, immediate)
|
657
|
+
end
|
658
|
+
|
659
|
+
# @!macro request
|
660
|
+
# @!macro immediate
|
661
|
+
#
|
662
|
+
# {include:Snapshot#parameters}
|
663
|
+
# {include:Snapshot#source_param}
|
664
|
+
# {include:Snapshot#multi_index}
|
665
|
+
# {include:Snapshot#multi_types}
|
666
|
+
#
|
667
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Snapshot}.
|
668
|
+
def snapshot(args = {}, immediate = auto_call)
|
669
|
+
request(protocol::Snapshot, args, immediate)
|
670
|
+
end
|
671
|
+
|
672
|
+
# @!macro request
|
673
|
+
# @!macro immediate
|
674
|
+
#
|
675
|
+
# {include:Status#parameters}
|
676
|
+
# {include:Status#source_param}
|
677
|
+
# {include:Status#multi_index}
|
678
|
+
# {include:Status#multi_types}
|
679
|
+
#
|
680
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Status}.
|
681
|
+
def status(args = {}, immediate = auto_call)
|
682
|
+
request(protocol::Status, args, immediate)
|
683
|
+
end
|
684
|
+
|
685
|
+
# @!macro request
|
686
|
+
# @!macro immediate
|
687
|
+
#
|
688
|
+
# {include:IndexStats#parameters}
|
689
|
+
# {include:IndexStats#source_param}
|
690
|
+
# {include:IndexStats#multi_index}
|
691
|
+
# {include:IndexStats#multi_types}
|
692
|
+
#
|
693
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::IndexStats}.
|
694
|
+
def index_stats(args = {}, immediate = auto_call)
|
695
|
+
request(protocol::IndexStats, args, immediate)
|
696
|
+
end
|
697
|
+
|
698
|
+
# @!macro request
|
699
|
+
# @!macro immediate
|
700
|
+
#
|
701
|
+
# {include:Segments#parameters}
|
702
|
+
# {include:Segments#source_param}
|
703
|
+
# {include:Segments#multi_index}
|
704
|
+
# {include:Segments#multi_types}
|
705
|
+
#
|
706
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Segments}.
|
707
|
+
def segments(args = {}, immediate = auto_call)
|
708
|
+
request(protocol::Segments, args, immediate)
|
709
|
+
end
|
710
|
+
|
711
|
+
# @!macro request
|
712
|
+
# @!macro immediate
|
713
|
+
#
|
714
|
+
# {include:IndexExists#parameters}
|
715
|
+
# {include:IndexExists#source_param}
|
716
|
+
# {include:IndexExists#multi_index}
|
717
|
+
# {include:IndexExists#multi_types}
|
718
|
+
#
|
719
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::IndexExists}.
|
720
|
+
def exists?(args = {}, immediate = auto_call)
|
231
721
|
request(protocol::IndexExists, args)
|
232
722
|
rescue Eson::NotFoundError
|
233
723
|
false
|
234
724
|
end
|
235
|
-
|
725
|
+
|
726
|
+
# @!macro request
|
727
|
+
# @!macro immediate
|
728
|
+
#
|
729
|
+
# {include:Explain#parameters}
|
730
|
+
# {include:Explain#source_param}
|
731
|
+
# {include:Explain#multi_index}
|
732
|
+
# {include:Explain#multi_types}
|
733
|
+
#
|
734
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Explain}.
|
735
|
+
def explain(args = {}, immediate = auto_call)
|
736
|
+
request(protocol::Explain, args)
|
737
|
+
end
|
738
|
+
|
739
|
+
# @!macro request
|
740
|
+
# @!macro immediate
|
741
|
+
#
|
742
|
+
# {include:Validate#parameters}
|
743
|
+
# {include:Validate#source_param}
|
744
|
+
# {include:Validate#multi_index}
|
745
|
+
# {include:Validate#multi_types}
|
746
|
+
#
|
747
|
+
# @param [Hash] args The arguments, as given in {Eson::Shared::Validate}.
|
748
|
+
def validate(args = {}, immediate = auto_call)
|
749
|
+
request(protocol::Validate, args)
|
750
|
+
end
|
751
|
+
# @!endgroup
|
752
|
+
|
236
753
|
private
|
754
|
+
# @api internal
|
237
755
|
def request(endpoint, args, auto_call = auto_call)
|
238
756
|
r = protocol::Request.new(endpoint, plugins, self)
|
239
757
|
|
240
|
-
r.
|
758
|
+
r.set_parameters_without_exceptions(default_parameters)
|
759
|
+
r.parameters = args
|
241
760
|
|
242
761
|
if block_given?
|
243
762
|
r.handle_block(&Proc.new)
|