elastomer-client 0.4.1 → 0.5.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +12 -0
- data/CHANGELOG.md +15 -0
- data/README.md +6 -7
- data/Rakefile +21 -0
- data/docs/README.md +44 -0
- data/docs/bulk_indexing.md +3 -0
- data/docs/client.md +240 -0
- data/docs/cluster.md +148 -0
- data/docs/docs.md +254 -0
- data/docs/index.md +161 -0
- data/docs/multi_search.md +3 -0
- data/docs/notifications.md +24 -11
- data/docs/scan_scroll.md +3 -0
- data/docs/snapshots.md +3 -0
- data/docs/templates.md +3 -0
- data/docs/warmers.md +3 -0
- data/elastomer-client.gemspec +2 -2
- data/lib/elastomer/client.rb +70 -43
- data/lib/elastomer/client/bulk.rb +2 -2
- data/lib/elastomer/client/cluster.rb +2 -2
- data/lib/elastomer/client/docs.rb +190 -54
- data/lib/elastomer/client/errors.rb +4 -2
- data/lib/elastomer/client/index.rb +111 -43
- data/lib/elastomer/client/multi_search.rb +1 -1
- data/lib/elastomer/client/nodes.rb +9 -4
- data/lib/elastomer/client/repository.rb +2 -2
- data/lib/elastomer/client/scroller.rb +235 -0
- data/lib/elastomer/client/snapshot.rb +1 -1
- data/lib/elastomer/client/template.rb +1 -1
- data/lib/elastomer/client/warmer.rb +1 -1
- data/lib/elastomer/notifications.rb +1 -1
- data/lib/elastomer/version.rb +1 -1
- data/script/bootstrap +0 -7
- data/script/cibuild +8 -3
- data/script/test +6 -0
- data/test/client/bulk_test.rb +2 -2
- data/test/client/cluster_test.rb +23 -2
- data/test/client/docs_test.rb +137 -6
- data/test/client/errors_test.rb +12 -8
- data/test/client/index_test.rb +88 -5
- data/test/client/multi_search_test.rb +29 -0
- data/test/client/repository_test.rb +36 -37
- data/test/client/{scan_test.rb → scroller_test.rb} +25 -6
- data/test/client/snapshot_test.rb +53 -43
- data/test/client/stubbed_client_test.rb +1 -1
- data/test/client_test.rb +60 -0
- data/test/notifications_test.rb +69 -0
- data/test/test_helper.rb +54 -11
- metadata +36 -23
- data/.ruby-version +0 -1
- data/lib/elastomer/client/scan.rb +0 -161
- data/script/testsuite +0 -10
@@ -26,8 +26,10 @@ module Elastomer
|
|
26
26
|
|
27
27
|
when Faraday::Response
|
28
28
|
response = args.shift
|
29
|
-
message = Hash === response.body && response.body['error'] || response.body.to_s
|
30
29
|
@status = response.status
|
30
|
+
body = response.body
|
31
|
+
|
32
|
+
message = body.is_a?(Hash) && body['error'] || body.to_s
|
31
33
|
super message
|
32
34
|
|
33
35
|
else
|
@@ -59,7 +61,7 @@ module Elastomer
|
|
59
61
|
@fatal = true
|
60
62
|
end
|
61
63
|
attr_writer :fatal
|
62
|
-
|
64
|
+
alias_method :fatal?, :fatal
|
63
65
|
end
|
64
66
|
|
65
67
|
end # Error
|
@@ -1,12 +1,17 @@
|
|
1
1
|
module Elastomer
|
2
2
|
class Client
|
3
3
|
|
4
|
-
# Provides access to index-level API commands.
|
4
|
+
# Provides access to index-level API commands. An index name is required for
|
5
|
+
# these API calls. If you want to operate on all inidces - flushing all
|
6
|
+
# indices, for example - then you will need to use the "_all" index name.
|
7
|
+
#
|
8
|
+
# You can override the index name for one-off calls by passing in the
|
9
|
+
# desired index name via the `:index` option.
|
5
10
|
#
|
6
11
|
# name - The name of the index as a String or an Array of names
|
7
12
|
#
|
8
13
|
# Returns an Index instance.
|
9
|
-
def index( name )
|
14
|
+
def index( name = nil )
|
10
15
|
Index.new self, name
|
11
16
|
end
|
12
17
|
|
@@ -19,32 +24,34 @@ module Elastomer
|
|
19
24
|
#
|
20
25
|
def initialize( client, name )
|
21
26
|
@client = client
|
22
|
-
@name = @client.assert_param_presence(name, 'index name')
|
27
|
+
@name = @client.assert_param_presence(name, 'index name') unless name.nil?
|
23
28
|
end
|
24
29
|
|
25
30
|
attr_reader :client, :name
|
26
31
|
|
27
|
-
# Check for the existence of the index. If a
|
32
|
+
# Check for the existence of the index. If a `:type` option is given, then
|
28
33
|
# we will check for the existence of the document type in the index.
|
29
34
|
#
|
30
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-indices-exists/
|
31
|
-
# and http://www.elasticsearch.org/guide/reference/api/admin-indices-types-exists/
|
32
|
-
#
|
33
35
|
# params - Parameters Hash
|
36
|
+
# :type - optional type mapping as a String
|
37
|
+
#
|
38
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-exists.html
|
39
|
+
# and http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-types-exists.html
|
34
40
|
#
|
35
41
|
# Returns true if the index (or type) exists
|
36
42
|
def exists?( params = {} )
|
37
43
|
response = client.head '/{index}{/type}', update_params(params, :action => 'index.exists')
|
38
44
|
response.success?
|
39
45
|
end
|
40
|
-
|
46
|
+
alias_method :exist?, :exists?
|
41
47
|
|
42
48
|
# Create the index.
|
43
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-create-index/
|
44
49
|
#
|
45
50
|
# body - The index settings and mappings as a Hash or a JSON encoded String
|
46
51
|
# params - Parameters Hash
|
47
52
|
#
|
53
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-create-index.html
|
54
|
+
#
|
48
55
|
# Returns the response body as a Hash
|
49
56
|
def create( body, params = {} )
|
50
57
|
response = client.post '/{index}', update_params(params, :body => body, :action => 'index.create')
|
@@ -52,10 +59,11 @@ module Elastomer
|
|
52
59
|
end
|
53
60
|
|
54
61
|
# Delete the index.
|
55
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-delete-index/
|
56
62
|
#
|
57
63
|
# params - Parameters Hash
|
58
64
|
#
|
65
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-delete-index.html
|
66
|
+
#
|
59
67
|
# Returns the response body as a Hash
|
60
68
|
def delete( params = {} )
|
61
69
|
response = client.delete '/{index}', update_params(params, :action => 'index.delete')
|
@@ -63,10 +71,11 @@ module Elastomer
|
|
63
71
|
end
|
64
72
|
|
65
73
|
# Open the index.
|
66
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-open-close/
|
67
74
|
#
|
68
75
|
# params - Parameters Hash
|
69
76
|
#
|
77
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html
|
78
|
+
#
|
70
79
|
# Returns the response body as a Hash
|
71
80
|
def open( params = {} )
|
72
81
|
response = client.post '/{index}/_open', update_params(params, :action => 'index.open')
|
@@ -74,10 +83,11 @@ module Elastomer
|
|
74
83
|
end
|
75
84
|
|
76
85
|
# Close the index.
|
77
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-open-close/
|
78
86
|
#
|
79
87
|
# params - Parameters Hash
|
80
88
|
#
|
89
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-open-close.html
|
90
|
+
#
|
81
91
|
# Returns the response body as a Hash
|
82
92
|
def close( params = {} )
|
83
93
|
response = client.post '/{index}/_close', update_params(params, :action => 'index.close')
|
@@ -85,64 +95,69 @@ module Elastomer
|
|
85
95
|
end
|
86
96
|
|
87
97
|
# Retrieve the settings for the index.
|
88
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-get-settings/
|
89
98
|
#
|
90
99
|
# params - Parameters Hash
|
91
100
|
#
|
101
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-get-settings.html
|
102
|
+
#
|
92
103
|
# Returns the response body as a Hash
|
93
104
|
def get_settings( params = {} )
|
94
105
|
response = client.get '{/index}/_settings', update_params(params, :action => 'index.get_settings')
|
95
106
|
response.body
|
96
107
|
end
|
97
|
-
|
108
|
+
alias_method :settings, :get_settings
|
98
109
|
|
99
110
|
# Change specific index level settings in real time.
|
100
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings/
|
101
111
|
#
|
102
112
|
# body - The index settings as a Hash or a JSON encoded String
|
103
113
|
# params - Parameters Hash
|
104
114
|
#
|
115
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-update-settings.html
|
116
|
+
#
|
105
117
|
# Returns the response body as a Hash
|
106
118
|
def update_settings( body, params = {} )
|
107
119
|
response = client.put '{/index}/_settings', update_params(params, :body => body, :action => 'index.update_settings')
|
108
120
|
response.body
|
109
121
|
end
|
110
122
|
|
111
|
-
#
|
112
|
-
# mapping provide the name as the
|
113
|
-
#
|
114
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-get-mapping/
|
123
|
+
# Retrieve one or more mappings from the index. To retrieve a specific
|
124
|
+
# mapping provide the name as the `:type` parameter.
|
115
125
|
#
|
116
126
|
# params - Parameters Hash
|
127
|
+
# :type - specific document type as a String or Array of Strings
|
128
|
+
#
|
129
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-get-mapping.html
|
117
130
|
#
|
118
131
|
# Returns the response body as a Hash
|
119
|
-
def
|
120
|
-
response = client.get '/{index}{/type}/_mapping', update_params(params, :action => 'index.
|
132
|
+
def get_mapping( params = {} )
|
133
|
+
response = client.get '/{index}{/type}/_mapping', update_params(params, :action => 'index.get_mapping')
|
121
134
|
response.body
|
122
135
|
end
|
136
|
+
alias_method :mapping, :get_mapping
|
123
137
|
|
124
138
|
# Register specific mapping definition for a specific type.
|
125
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping/
|
126
139
|
#
|
127
140
|
# type - Name of the mapping to update as a String
|
128
141
|
# body - The mapping values to update as a Hash or a JSON encoded String
|
129
142
|
# params - Parameters Hash
|
130
143
|
#
|
144
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-put-mapping.html
|
145
|
+
#
|
131
146
|
# Returns the response body as a Hash
|
132
147
|
def update_mapping( type, body, params = {} )
|
133
148
|
response = client.put '/{index}/{type}/_mapping', update_params(params, :body => body, :type => type, :action => 'index.update_mapping')
|
134
149
|
response.body
|
135
150
|
end
|
136
|
-
|
151
|
+
alias_method :put_mapping, :update_mapping
|
137
152
|
|
138
153
|
# Delete the mapping identified by `type`. This deletes all documents of
|
139
154
|
# that type from the index.
|
140
155
|
#
|
141
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-delete-mapping/
|
142
|
-
#
|
143
156
|
# type - Name of the mapping to update as a String
|
144
157
|
# params - Parameters Hash
|
145
158
|
#
|
159
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-delete-mapping.html
|
160
|
+
#
|
146
161
|
# Returns the response body as a Hash
|
147
162
|
def delete_mapping( type, params = {} )
|
148
163
|
response = client.delete '/{index}/{type}', update_params(params, :type => type, :action => 'index.delete_mapping')
|
@@ -160,7 +175,7 @@ module Elastomer
|
|
160
175
|
response = client.get '/{index}/_aliases', update_params(:action => 'index.get_aliases')
|
161
176
|
response.body
|
162
177
|
end
|
163
|
-
|
178
|
+
alias_method :aliases, :get_aliases
|
164
179
|
|
165
180
|
# Return the named aliases associated with this index.
|
166
181
|
#
|
@@ -220,11 +235,12 @@ module Elastomer
|
|
220
235
|
end
|
221
236
|
|
222
237
|
# Performs the analysis process on a text and return the tokens breakdown of the text.
|
223
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-analyze/
|
224
238
|
#
|
225
239
|
# text - The text to analyze as a String
|
226
240
|
# params - Parameters Hash
|
227
241
|
#
|
242
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-analyze.html
|
243
|
+
#
|
228
244
|
# Returns the response body as a Hash
|
229
245
|
def analyze( text, params = {} )
|
230
246
|
response = client.get '{/index}/_analyze', update_params(params, :body => text.to_s, :action => 'index.analyze')
|
@@ -234,9 +250,10 @@ module Elastomer
|
|
234
250
|
# Explicitly refresh one or more index, making all operations performed
|
235
251
|
# since the last refresh available for search.
|
236
252
|
#
|
237
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-refresh/
|
238
|
-
#
|
239
253
|
# params - Parameters Hash
|
254
|
+
# :index - set to "_all" to refresh all indices
|
255
|
+
#
|
256
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-refresh.html
|
240
257
|
#
|
241
258
|
# Returns the response body as a Hash
|
242
259
|
def refresh( params = {} )
|
@@ -245,9 +262,11 @@ module Elastomer
|
|
245
262
|
end
|
246
263
|
|
247
264
|
# Flush one or more indices to the index storage.
|
248
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-flush/
|
249
265
|
#
|
250
266
|
# params - Parameters Hash
|
267
|
+
# :index - set to "_all" to flush all indices
|
268
|
+
#
|
269
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-flush.html
|
251
270
|
#
|
252
271
|
# Returns the response body as a Hash
|
253
272
|
def flush( params = {} )
|
@@ -257,9 +276,11 @@ module Elastomer
|
|
257
276
|
|
258
277
|
# Optimize one or more indices. Optimizing an index allows for faster
|
259
278
|
# search operations but can be resource intensive.
|
260
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-optimize/
|
261
279
|
#
|
262
280
|
# params - Parameters Hash
|
281
|
+
# :index - set to "_all" to optimize all indices
|
282
|
+
#
|
283
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-optimize.html
|
263
284
|
#
|
264
285
|
# Returns the response body as a Hash
|
265
286
|
def optimize( params = {} )
|
@@ -270,12 +291,13 @@ module Elastomer
|
|
270
291
|
# Deprecated: Explicitly snapshot (backup) one or more indices to the
|
271
292
|
# gateway. By default this happens periodically (every 1 second) but the
|
272
293
|
# period can be changed or disabled completely.
|
273
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-gateway-snapshot/
|
274
294
|
#
|
275
295
|
# This API was removed in ES 1.2.
|
276
296
|
#
|
277
297
|
# params - Parameters Hash
|
278
298
|
#
|
299
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/indices-gateway-snapshot.html
|
300
|
+
#
|
279
301
|
# Returns the response body as a Hash
|
280
302
|
def snapshot( params = {} )
|
281
303
|
response = client.post '{/index}/_gateway/snapshot', update_params(params, :action => 'index.snapshot')
|
@@ -285,10 +307,10 @@ module Elastomer
|
|
285
307
|
# Provides insight into on-going index shard recoveries. Recovery status
|
286
308
|
# may be reported for specific indices, or cluster-wide.
|
287
309
|
#
|
288
|
-
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-recovery.html
|
289
|
-
#
|
290
310
|
# params - Parameters Hash
|
291
311
|
#
|
312
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-recovery.html
|
313
|
+
#
|
292
314
|
# Returns the response body as a Hash
|
293
315
|
def recovery( params = {} )
|
294
316
|
response = client.get '{/index}/_recovery', update_params(params, :action => 'index.recovery')
|
@@ -297,9 +319,11 @@ module Elastomer
|
|
297
319
|
|
298
320
|
# Clear caches for one or more indices. Individual caches can be
|
299
321
|
# specified with parameters.
|
300
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-clearcache/
|
301
322
|
#
|
302
323
|
# params - Parameters Hash
|
324
|
+
# :index - set to "_all" to clear all index caches
|
325
|
+
#
|
326
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-clearcache.html
|
303
327
|
#
|
304
328
|
# Returns the response body as a Hash
|
305
329
|
def clear_cache( params = {} )
|
@@ -309,22 +333,26 @@ module Elastomer
|
|
309
333
|
|
310
334
|
# Retrieve statistics about one or more indices. Specific statistics
|
311
335
|
# can be retrieved with parameters.
|
312
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-stats/
|
313
336
|
#
|
314
337
|
# params - Parameters Hash
|
315
338
|
#
|
339
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-stats.html
|
340
|
+
#
|
316
341
|
# Returns the response body as a Hash
|
317
342
|
def stats( params = {} )
|
318
343
|
response = client.get '{/index}/_stats', update_params(params, :action => 'index.stats')
|
319
344
|
response.body
|
320
345
|
end
|
321
346
|
|
322
|
-
# Retrieve the status of one or more indices. Recovery and
|
323
|
-
# status can be retrieved with parameters.
|
324
|
-
#
|
347
|
+
# Deprecated: Retrieve the status of one or more indices. Recovery and
|
348
|
+
# snapshot status can be retrieved with parameters.
|
349
|
+
#
|
350
|
+
# This API was deprecated in 1.2 and is slated for removal.
|
325
351
|
#
|
326
352
|
# params - Parameters Hash
|
327
353
|
#
|
354
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-status.html
|
355
|
+
#
|
328
356
|
# Returns the response body as a Hash
|
329
357
|
def status( params = {} )
|
330
358
|
response = client.get '{/index}/_status', update_params(params, :action => 'index.status')
|
@@ -333,10 +361,11 @@ module Elastomer
|
|
333
361
|
|
334
362
|
# Retrieve low level Lucene segments information for shards of one
|
335
363
|
# or more indices.
|
336
|
-
# See http://www.elasticsearch.org/guide/reference/api/admin-indices-segments/
|
337
364
|
#
|
338
365
|
# params - Parameters Hash
|
339
366
|
#
|
367
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-segments.html
|
368
|
+
#
|
340
369
|
# Returns the response body as a Hash
|
341
370
|
def segments( params = {} )
|
342
371
|
response = client.get '{/index}/_segments', update_params(params, :action => 'index.segments')
|
@@ -348,6 +377,8 @@ module Elastomer
|
|
348
377
|
#
|
349
378
|
# type - The document type as a String
|
350
379
|
#
|
380
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs.html
|
381
|
+
#
|
351
382
|
# Returns a Docs instance.
|
352
383
|
def docs( type = nil )
|
353
384
|
client.docs name, type
|
@@ -372,6 +403,8 @@ module Elastomer
|
|
372
403
|
# ...
|
373
404
|
# end
|
374
405
|
#
|
406
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-bulk.html
|
407
|
+
#
|
375
408
|
# Returns the response body as a Hash
|
376
409
|
def bulk( params = {}, &block )
|
377
410
|
raise 'a block is required' if block.nil?
|
@@ -380,8 +413,37 @@ module Elastomer
|
|
380
413
|
client.bulk params, &block
|
381
414
|
end
|
382
415
|
|
383
|
-
# Create a new
|
384
|
-
# The
|
416
|
+
# Create a new Scroller instance for scrolling all results from a `query`.
|
417
|
+
# The Scroller will be scoped to the current index.
|
418
|
+
#
|
419
|
+
# query - The query to scroll as a Hash or a JSON encoded String
|
420
|
+
# opts - Options Hash
|
421
|
+
# :index - the name of the index to search
|
422
|
+
# :type - the document type to search
|
423
|
+
# :scroll - the keep alive time of the scrolling request (5 minutes by default)
|
424
|
+
# :size - the number of documents per shard to fetch per scroll
|
425
|
+
#
|
426
|
+
# Examples
|
427
|
+
#
|
428
|
+
# scroll = index.scroll('{"query":{"match_all":{}},"sort":{"date":"desc"}}')
|
429
|
+
# scroll.each_document do |document|
|
430
|
+
# document['_id']
|
431
|
+
# document['_source']
|
432
|
+
# end
|
433
|
+
#
|
434
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scan-scroll.html
|
435
|
+
#
|
436
|
+
# Returns a new Scroller instance
|
437
|
+
def scroll( query, opts = {} )
|
438
|
+
opts = {:index => name}.merge opts
|
439
|
+
client.scroll query, opts
|
440
|
+
end
|
441
|
+
|
442
|
+
# Create a new Scroller instance for scanning all results from a `query`.
|
443
|
+
# The Scroller will be scoped to the current index. The Scroller is
|
444
|
+
# configured to use `scan` semantics which are more efficient than a
|
445
|
+
# standard scroll query; the caveat is that the returned documents cannot
|
446
|
+
# be sorted.
|
385
447
|
#
|
386
448
|
# query - The query to scan as a Hash or a JSON encoded String
|
387
449
|
# opts - Options Hash
|
@@ -398,7 +460,9 @@ module Elastomer
|
|
398
460
|
# document['_source']
|
399
461
|
# end
|
400
462
|
#
|
401
|
-
#
|
463
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/scan-scroll.html
|
464
|
+
#
|
465
|
+
# Returns a new Scroller instance
|
402
466
|
def scan( query, opts = {} )
|
403
467
|
opts = {:index => name}.merge opts
|
404
468
|
client.scan query, opts
|
@@ -427,6 +491,8 @@ module Elastomer
|
|
427
491
|
# ...
|
428
492
|
# end
|
429
493
|
#
|
494
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-multi-search.html
|
495
|
+
#
|
430
496
|
# Returns the response body as a Hash
|
431
497
|
def multi_search( params = {}, &block )
|
432
498
|
raise 'a block is required' if block.nil?
|
@@ -450,6 +516,8 @@ module Elastomer
|
|
450
516
|
# index.warmer('warmer1').get
|
451
517
|
# index.warmer('warmer1').delete
|
452
518
|
#
|
519
|
+
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-warmers.html
|
520
|
+
#
|
453
521
|
# Returns a new Warmer instance
|
454
522
|
def warmer( warmer_name )
|
455
523
|
client.warmer(name, warmer_name)
|
@@ -44,7 +44,7 @@ module Elastomer
|
|
44
44
|
response.body
|
45
45
|
end
|
46
46
|
end
|
47
|
-
|
47
|
+
alias_method :msearch, :multi_search
|
48
48
|
|
49
49
|
# The MultiSearch class is a helper for accumulating and submitting
|
50
50
|
# multi_search API requests. Instances of the MultiSearch class
|
@@ -2,12 +2,15 @@
|
|
2
2
|
module Elastomer
|
3
3
|
class Client
|
4
4
|
|
5
|
-
# Provides access to node-level API commands.
|
5
|
+
# Provides access to node-level API commands. The default node is set to
|
6
|
+
# nil which target all nodes. You can pass in "_all" (to get the
|
7
|
+
# same effect) or "_local" to target only the current node the client is
|
8
|
+
# connected to. And you can specify an individual node or multiple nodes.
|
6
9
|
#
|
7
10
|
# node_id - The node ID as a String or an Array of node IDs
|
8
11
|
#
|
9
12
|
# Returns a Nodes instance.
|
10
|
-
def nodes( node_id =
|
13
|
+
def nodes( node_id = nil )
|
11
14
|
Nodes.new self, node_id
|
12
15
|
end
|
13
16
|
|
@@ -70,7 +73,9 @@ module Elastomer
|
|
70
73
|
response.body
|
71
74
|
end
|
72
75
|
|
73
|
-
# Get the current hot threads on each node in the cluster.
|
76
|
+
# Get the current hot threads on each node in the cluster. The return
|
77
|
+
# value is a human formatted String - i.e. a String with newlines and
|
78
|
+
# other formatting characters suitable for display in a terminal window.
|
74
79
|
#
|
75
80
|
# params - Parameters Hash
|
76
81
|
# :node_id - a single node ID or Array of node IDs
|
@@ -80,7 +85,7 @@ module Elastomer
|
|
80
85
|
#
|
81
86
|
# See http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster-nodes-hot-threads.html
|
82
87
|
#
|
83
|
-
# Returns the response as a
|
88
|
+
# Returns the response as a String
|
84
89
|
def hot_threads( params = {} )
|
85
90
|
response = client.get '/_nodes{/node_id}/hot_threads', update_params(params, :action => 'nodes.hot_threads')
|
86
91
|
response.body
|