elastomer-client 3.0.1 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +4 -0
- data/lib/elastomer/client/bulk.rb +1 -1
- data/lib/elastomer/client/cluster.rb +10 -22
- data/lib/elastomer/client/docs.rb +46 -55
- data/lib/elastomer/client/index.rb +33 -33
- data/lib/elastomer/client/multi_percolate.rb +9 -9
- data/lib/elastomer/client/multi_search.rb +5 -5
- data/lib/elastomer/client/native_delete_by_query.rb +2 -22
- data/lib/elastomer/client/nodes.rb +8 -22
- data/lib/elastomer/client/percolator.rb +5 -5
- data/lib/elastomer/client/repository.rb +7 -7
- data/lib/elastomer/client/rest_api_spec/api_spec.rb +119 -0
- data/lib/elastomer/client/rest_api_spec/api_spec_v2_3.rb +2232 -0
- data/lib/elastomer/client/rest_api_spec/api_spec_v2_4.rb +2250 -0
- data/lib/elastomer/client/rest_api_spec/api_spec_v5_6.rb +2491 -0
- data/lib/elastomer/client/rest_api_spec/rest_api.rb +59 -0
- data/lib/elastomer/client/rest_api_spec.rb +44 -0
- data/lib/elastomer/client/scroller.rb +10 -10
- data/lib/elastomer/client/snapshot.rb +7 -7
- data/lib/elastomer/client/tasks.rb +45 -51
- data/lib/elastomer/client/template.rb +8 -8
- data/lib/elastomer/client/warmer.rb +11 -4
- data/lib/elastomer/client.rb +31 -7
- data/lib/elastomer/version.rb +1 -1
- data/lib/elastomer/version_support.rb +35 -46
- data/script/generate-rest-api-spec +152 -0
- data/test/client/rest_api_spec/api_spec_test.rb +55 -0
- data/test/client/rest_api_spec/rest_api_test.rb +96 -0
- data/test/client/stubbed_client_test.rb +1 -19
- data/test/middleware/opaque_id_test.rb +1 -3
- data/test/notifications_test.rb +0 -5
- data/test/test_helper.rb +5 -4
- data/test/version_support_test.rb +3 -21
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d22300f2c0a799c8b2253f60928f24d7da61e39
|
4
|
+
data.tar.gz: 19e135b931dece3946b68469ad52f56dcb9b8271
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cebdfe02683dee2502e7beb39040dc876884d44656b2f0f5a0aa071621cd6c89be23a39c88b2b0185bc1035c76f01dd42748e1b5cdd14a13ecf5fa1c93696b7f
|
7
|
+
data.tar.gz: 06bbcedac35ee8a1a947b3fcb87c6e451d05d03f390971f5de678c3298b1924414e22cc062459ef378d872134a8d36b5f92cbb903d9c35b7aa923f8055b1d977
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 3.1.0 (2018-01-19)
|
2
|
+
- Added the `strict_params` flag for enforcing params passed to the REST API
|
3
|
+
- Added the `RestApiSpec` module and classes for enforcing strict params
|
4
|
+
|
1
5
|
## 3.0.1 (2017-12-20)
|
2
6
|
- Fixed argument passing to `app_delete_by_query`
|
3
7
|
- Explicitly close scroll search contexts when scroll is complete
|
@@ -38,7 +38,7 @@ module Elastomer
|
|
38
38
|
raise "bulk request body cannot be nil" if body.nil?
|
39
39
|
params ||= {}
|
40
40
|
|
41
|
-
response = self.post "{/index}{/type}/_bulk", params.merge(:body
|
41
|
+
response = self.post "{/index}{/type}/_bulk", params.merge(body: body, action: "bulk", rest_api: "bulk")
|
42
42
|
response.body
|
43
43
|
end
|
44
44
|
end
|
@@ -34,7 +34,7 @@ module Elastomer
|
|
34
34
|
#
|
35
35
|
# Returns the response as a Hash
|
36
36
|
def health( params = {} )
|
37
|
-
response = client.get "/_cluster/health{/index}", params.merge(action: "cluster.health")
|
37
|
+
response = client.get "/_cluster/health{/index}", params.merge(action: "cluster.health", rest_api: "cluster.health")
|
38
38
|
response.body
|
39
39
|
end
|
40
40
|
|
@@ -52,7 +52,7 @@ module Elastomer
|
|
52
52
|
#
|
53
53
|
# Returns the response as a Hash
|
54
54
|
def state( params = {} )
|
55
|
-
response = client.get "/_cluster/state{/metrics}{/indices}", params.merge(action: "cluster.state")
|
55
|
+
response = client.get "/_cluster/state{/metrics}{/indices}", params.merge(action: "cluster.state", rest_api: "cluster.state")
|
56
56
|
response.body
|
57
57
|
end
|
58
58
|
|
@@ -67,7 +67,7 @@ module Elastomer
|
|
67
67
|
#
|
68
68
|
# Returns the response as a Hash
|
69
69
|
def stats( params = {} )
|
70
|
-
response = client.get "/_cluster/stats", params.merge(action: "cluster.stats")
|
70
|
+
response = client.get "/_cluster/stats", params.merge(action: "cluster.stats", rest_api: "cluster.stats")
|
71
71
|
response.body
|
72
72
|
end
|
73
73
|
|
@@ -80,7 +80,7 @@ module Elastomer
|
|
80
80
|
#
|
81
81
|
# Returns the response as a Hash
|
82
82
|
def pending_tasks( params = {} )
|
83
|
-
response = client.get "/_cluster/pending_tasks", params.merge(action: "cluster.pending_tasks")
|
83
|
+
response = client.get "/_cluster/pending_tasks", params.merge(action: "cluster.pending_tasks", rest_api: "cluster.pending_tasks")
|
84
84
|
response.body
|
85
85
|
end
|
86
86
|
|
@@ -101,7 +101,7 @@ module Elastomer
|
|
101
101
|
#
|
102
102
|
# Returns the response as a Hash
|
103
103
|
def get_settings( params = {} )
|
104
|
-
response = client.get "/_cluster/settings", params.merge(action: "cluster.get_settings")
|
104
|
+
response = client.get "/_cluster/settings", params.merge(action: "cluster.get_settings", rest_api: "cluster.get_settings")
|
105
105
|
response.body
|
106
106
|
end
|
107
107
|
alias_method :settings, :get_settings
|
@@ -117,7 +117,7 @@ module Elastomer
|
|
117
117
|
#
|
118
118
|
# Returns the response as a Hash
|
119
119
|
def update_settings( body, params = {} )
|
120
|
-
response = client.put "/_cluster/settings", params.merge(body: body, action: "cluster.update_settings")
|
120
|
+
response = client.put "/_cluster/settings", params.merge(body: body, action: "cluster.update_settings", rest_api: "cluster.put_settings")
|
121
121
|
response.body
|
122
122
|
end
|
123
123
|
|
@@ -157,20 +157,7 @@ module Elastomer
|
|
157
157
|
body = {commands: Array(commands)}
|
158
158
|
end
|
159
159
|
|
160
|
-
response = client.post "/_cluster/reroute", params.merge(body: body, action: "cluster.reroute")
|
161
|
-
response.body
|
162
|
-
end
|
163
|
-
|
164
|
-
# Shutdown the entire cluster. There is also a Nodes#shutdown method for
|
165
|
-
# shutting down individual nodes.
|
166
|
-
#
|
167
|
-
# params - Parameters Hash
|
168
|
-
#
|
169
|
-
# See https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-shutdown.html
|
170
|
-
#
|
171
|
-
# Returns the response as a Hash
|
172
|
-
def shutdown( params = {} )
|
173
|
-
response = client.post "/_shutdown", params.merge(action: "cluster.shutdown")
|
160
|
+
response = client.post "/_cluster/reroute", params.merge(body: body, action: "cluster.reroute", rest_api: "cluster.reroute")
|
174
161
|
response.body
|
175
162
|
end
|
176
163
|
|
@@ -181,6 +168,7 @@ module Elastomer
|
|
181
168
|
#
|
182
169
|
# params - Parameters Hash
|
183
170
|
# :index - an index name or Array of index names
|
171
|
+
# :name - an alias name or Array of alias names
|
184
172
|
#
|
185
173
|
# Examples
|
186
174
|
#
|
@@ -191,7 +179,7 @@ module Elastomer
|
|
191
179
|
#
|
192
180
|
# Returns the response body as a Hash
|
193
181
|
def get_aliases( params = {} )
|
194
|
-
response = client.get "{/index}/
|
182
|
+
response = client.get "{/index}/_alias{/name}", params.merge(action: "cluster.get_aliases", rest_api: "indices.get_alias")
|
195
183
|
response.body
|
196
184
|
end
|
197
185
|
alias_method :aliases, :get_aliases
|
@@ -227,7 +215,7 @@ module Elastomer
|
|
227
215
|
body = {actions: Array(actions)}
|
228
216
|
end
|
229
217
|
|
230
|
-
response = client.post "/_aliases", params.merge(body: body, action: "cluster.update_aliases")
|
218
|
+
response = client.post "/_aliases", params.merge(body: body, action: "cluster.update_aliases", rest_api: "indices.update_aliases")
|
231
219
|
response.body
|
232
220
|
end
|
233
221
|
|
@@ -15,7 +15,6 @@ module Elastomer
|
|
15
15
|
Docs.new self, name, type
|
16
16
|
end
|
17
17
|
|
18
|
-
|
19
18
|
class Docs
|
20
19
|
# Create a new document client for making API requests that pertain to
|
21
20
|
# the indexing and searching of documents in a search index.
|
@@ -79,7 +78,7 @@ module Elastomer
|
|
79
78
|
def index( document, params = {} )
|
80
79
|
overrides = from_document document
|
81
80
|
params = update_params(params, overrides)
|
82
|
-
params
|
81
|
+
params.merge!(action: "docs.index", rest_api: "index")
|
83
82
|
|
84
83
|
params.delete(:id) if params[:id].nil? || params[:id].to_s =~ /\A\s*\z/
|
85
84
|
|
@@ -103,7 +102,7 @@ module Elastomer
|
|
103
102
|
#
|
104
103
|
# Returns the response body as a Hash
|
105
104
|
def delete( params = {} )
|
106
|
-
response = client.delete "/{index}/{type}/{id}", update_params(params, :
|
105
|
+
response = client.delete "/{index}/{type}/{id}", update_params(params, action: "docs.delete", rest_api: "delete")
|
107
106
|
response.body
|
108
107
|
end
|
109
108
|
|
@@ -117,7 +116,7 @@ module Elastomer
|
|
117
116
|
#
|
118
117
|
# Returns the response body as a Hash
|
119
118
|
def get( params = {} )
|
120
|
-
response = client.get "/{index}/{type}/{id}", update_params(params, :
|
119
|
+
response = client.get "/{index}/{type}/{id}", update_params(params, action: "docs.get", rest_api: "get")
|
121
120
|
response.body
|
122
121
|
end
|
123
122
|
|
@@ -131,7 +130,7 @@ module Elastomer
|
|
131
130
|
#
|
132
131
|
# Returns true if the document exists
|
133
132
|
def exists?( params = {} )
|
134
|
-
response = client.head "/{index}/{type}/{id}", update_params(params, :
|
133
|
+
response = client.head "/{index}/{type}/{id}", update_params(params, action: "docs.exists", rest_api: "exists")
|
135
134
|
response.success?
|
136
135
|
end
|
137
136
|
alias_method :exist?, :exists?
|
@@ -146,7 +145,7 @@ module Elastomer
|
|
146
145
|
#
|
147
146
|
# Returns the response body as a Hash
|
148
147
|
def source( params = {} )
|
149
|
-
response = client.get "/{index}/{type}/{id}/_source", update_params(params, :
|
148
|
+
response = client.get "/{index}/{type}/{id}/_source", update_params(params, action: "docs.source", rest_api: "get_source")
|
150
149
|
response.body
|
151
150
|
end
|
152
151
|
|
@@ -160,7 +159,7 @@ module Elastomer
|
|
160
159
|
# Returns the response body as a Hash
|
161
160
|
def multi_get( body, params = {} )
|
162
161
|
overrides = from_document body
|
163
|
-
overrides
|
162
|
+
overrides.merge!(action: "docs.multi_get", rest_api: "mget")
|
164
163
|
|
165
164
|
response = client.get "{/index}{/type}/_mget", update_params(params, overrides)
|
166
165
|
response.body
|
@@ -177,7 +176,7 @@ module Elastomer
|
|
177
176
|
# Returns the response body as a Hash
|
178
177
|
def update( script, params = {} )
|
179
178
|
overrides = from_document script
|
180
|
-
overrides
|
179
|
+
overrides.merge!(action: "docs.update", rest_api: "update")
|
181
180
|
|
182
181
|
response = client.post "/{index}/{type}/{id}/_update", update_params(params, overrides)
|
183
182
|
response.body
|
@@ -195,10 +194,10 @@ module Elastomer
|
|
195
194
|
# Examples
|
196
195
|
#
|
197
196
|
# # request body query
|
198
|
-
# search({:
|
197
|
+
# search({query: {match_all: {}}}, type: 'tweet')
|
199
198
|
#
|
200
199
|
# # same thing but using the URI request method
|
201
|
-
# search(:
|
200
|
+
# search(q: '*:*', type: 'tweet')
|
202
201
|
#
|
203
202
|
# See https://www.elastic.co/guide/en/elasticsearch/reference/current/search-search.html
|
204
203
|
# See https://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html
|
@@ -208,7 +207,7 @@ module Elastomer
|
|
208
207
|
def search( query, params = nil )
|
209
208
|
query, params = extract_params(query) if params.nil?
|
210
209
|
|
211
|
-
response = client.get "/{index}{/type}/_search", update_params(params, :
|
210
|
+
response = client.get "/{index}{/type}/_search", update_params(params, body: query, action: "docs.search", rest_api: "search")
|
212
211
|
response.body
|
213
212
|
end
|
214
213
|
|
@@ -226,7 +225,7 @@ module Elastomer
|
|
226
225
|
#
|
227
226
|
# Returns the response body as a hash
|
228
227
|
def search_shards( params = {} )
|
229
|
-
response = client.get "/{index}{/type}/_search_shards", update_params(params, :
|
228
|
+
response = client.get "/{index}{/type}/_search_shards", update_params(params, action: "docs.search_shards", rest_api: "search_shards")
|
230
229
|
response.body
|
231
230
|
end
|
232
231
|
|
@@ -242,10 +241,10 @@ module Elastomer
|
|
242
241
|
# Examples
|
243
242
|
#
|
244
243
|
# # request body query
|
245
|
-
# count({:
|
244
|
+
# count({match_all: {}}, type: 'tweet')
|
246
245
|
#
|
247
246
|
# # same thing but using the URI request method
|
248
|
-
# count(:
|
247
|
+
# count(q: '*:*', type: 'tweet')
|
249
248
|
#
|
250
249
|
# See https://www.elastic.co/guide/en/elasticsearch/reference/current/search-count.html
|
251
250
|
#
|
@@ -253,7 +252,7 @@ module Elastomer
|
|
253
252
|
def count( query, params = nil )
|
254
253
|
query, params = extract_params(query) if params.nil?
|
255
254
|
|
256
|
-
response = client.get "/{index}{/type}/_count", update_params(params, :
|
255
|
+
response = client.get "/{index}{/type}/_count", update_params(params, body: query, action: "docs.count", rest_api: "count")
|
257
256
|
response.body
|
258
257
|
end
|
259
258
|
|
@@ -304,13 +303,13 @@ module Elastomer
|
|
304
303
|
#
|
305
304
|
# Examples
|
306
305
|
#
|
307
|
-
# index.percolator(1).create :
|
308
|
-
# docs.percolate :
|
309
|
-
# docs.percolate nil, :
|
306
|
+
# index.percolator(1).create query: { match: { author: "pea53" } }
|
307
|
+
# docs.percolate doc: { author: "pea53" }
|
308
|
+
# docs.percolate nil, id: 3
|
310
309
|
#
|
311
310
|
# Returns the response body as a Hash
|
312
311
|
def percolate(body, params = {})
|
313
|
-
response = client.get "/{index}/{type}{/id}/_percolate", update_params(params, :
|
312
|
+
response = client.get "/{index}/{type}{/id}/_percolate", update_params(params, body: body, action: "percolator.percolate", rest_api: "percolate")
|
314
313
|
response.body
|
315
314
|
end
|
316
315
|
|
@@ -320,13 +319,13 @@ module Elastomer
|
|
320
319
|
#
|
321
320
|
# Examples
|
322
321
|
#
|
323
|
-
# index.register_percolator_query 1, :
|
324
|
-
# docs.percolate_count :
|
325
|
-
# docs.percolate_count nil, :
|
322
|
+
# index.register_percolator_query 1, query: { match: { author: "pea53" } }
|
323
|
+
# docs.percolate_count doc: { author: "pea53" }
|
324
|
+
# docs.percolate_count nil, id: 3
|
326
325
|
#
|
327
326
|
# Returns the count
|
328
327
|
def percolate_count(body, params = {})
|
329
|
-
response = client.get "/{index}/{type}{/id}/_percolate/count", update_params(params, :
|
328
|
+
response = client.get "/{index}/{type}{/id}/_percolate/count", update_params(params, body: body, action: "percolator.percolate_count", rest_api: "count_percolate")
|
330
329
|
response.body["total"]
|
331
330
|
end
|
332
331
|
|
@@ -341,7 +340,7 @@ module Elastomer
|
|
341
340
|
#
|
342
341
|
# Returns the response body as a hash
|
343
342
|
def termvector( params = {} )
|
344
|
-
response = client.get "/{index}/{type}/{id}/
|
343
|
+
response = client.get "/{index}/{type}/{id}/_termvectors", update_params(params, action: "docs.termvector", rest_api: "termvectors")
|
345
344
|
response.body
|
346
345
|
end
|
347
346
|
alias_method :termvectors, :termvector
|
@@ -359,7 +358,7 @@ module Elastomer
|
|
359
358
|
#
|
360
359
|
# Returns the response body as a hash
|
361
360
|
def multi_termvectors( body, params = {} )
|
362
|
-
response = client.get "{/index}{/type}/_mtermvectors", update_params(params, :
|
361
|
+
response = client.get "{/index}{/type}/_mtermvectors", update_params(params, body: body, action: "docs.multi_termvectors", rest_api: "mtermvectors")
|
363
362
|
response.body
|
364
363
|
end
|
365
364
|
alias_method :multi_term_vectors, :multi_termvectors
|
@@ -378,9 +377,9 @@ Percolate
|
|
378
377
|
#
|
379
378
|
# Examples
|
380
379
|
#
|
381
|
-
# explain({:
|
380
|
+
# explain({query: {term: {"message" => "search"}}}, id: 1)
|
382
381
|
#
|
383
|
-
# explain(:
|
382
|
+
# explain(q: "message:search", id: 1)
|
384
383
|
#
|
385
384
|
# See https://www.elastic.co/guide/en/elasticsearch/reference/current/search-explain.html
|
386
385
|
#
|
@@ -388,7 +387,7 @@ Percolate
|
|
388
387
|
def explain( query, params = nil )
|
389
388
|
query, params = extract_params(query) if params.nil?
|
390
389
|
|
391
|
-
response = client.get "/{index}/{type}/{id}/_explain", update_params(params, :
|
390
|
+
response = client.get "/{index}/{type}/{id}/_explain", update_params(params, body: query, action: "docs.explain", rest_api: "explain")
|
392
391
|
response.body
|
393
392
|
end
|
394
393
|
|
@@ -402,10 +401,10 @@ Percolate
|
|
402
401
|
# Examples
|
403
402
|
#
|
404
403
|
# # request body query
|
405
|
-
# validate({:
|
404
|
+
# validate({query: {query_string: {query: "*:*"}}}, explain: true)
|
406
405
|
#
|
407
406
|
# # same thing but using the URI query parameter
|
408
|
-
# validate(:
|
407
|
+
# validate(q: "post_date:foo", explain: true)
|
409
408
|
#
|
410
409
|
# See https://www.elastic.co/guide/en/elasticsearch/reference/current/search-validate.html
|
411
410
|
#
|
@@ -413,7 +412,7 @@ Percolate
|
|
413
412
|
def validate( query, params = nil )
|
414
413
|
query, params = extract_params(query) if params.nil?
|
415
414
|
|
416
|
-
response = client.get "/{index}{/type}/_validate/query", update_params(params, :
|
415
|
+
response = client.get "/{index}{/type}/_validate/query", update_params(params, body: query, action: "docs.validate", rest_api: "indices.validate_query")
|
417
416
|
response.body
|
418
417
|
end
|
419
418
|
|
@@ -441,7 +440,7 @@ Percolate
|
|
441
440
|
def bulk( params = {}, &block )
|
442
441
|
raise "a block is required" if block.nil?
|
443
442
|
|
444
|
-
params = {:
|
443
|
+
params = {index: self.name, type: self.type}.merge params
|
445
444
|
client.bulk params, &block
|
446
445
|
end
|
447
446
|
|
@@ -467,7 +466,7 @@ Percolate
|
|
467
466
|
#
|
468
467
|
# Returns a new Scroller instance
|
469
468
|
def scroll( query, opts = {} )
|
470
|
-
opts = {:
|
469
|
+
opts = {index: name, type: type}.merge opts
|
471
470
|
client.scroll query, opts
|
472
471
|
end
|
473
472
|
|
@@ -494,7 +493,7 @@ Percolate
|
|
494
493
|
#
|
495
494
|
# Returns a new Scroller instance
|
496
495
|
def scan( query, opts = {} )
|
497
|
-
opts = {:
|
496
|
+
opts = {index: name, type: type}.merge opts
|
498
497
|
client.scan query, opts
|
499
498
|
end
|
500
499
|
|
@@ -514,8 +513,8 @@ Percolate
|
|
514
513
|
# Examples
|
515
514
|
#
|
516
515
|
# docs.multi_search do |m|
|
517
|
-
# m.search({:
|
518
|
-
# m.search({:
|
516
|
+
# m.search({query: {match_all: {}}, size: 0)
|
517
|
+
# m.search({query: {field: {"foo" => "bar"}}})
|
519
518
|
# ...
|
520
519
|
# end
|
521
520
|
#
|
@@ -525,7 +524,7 @@ Percolate
|
|
525
524
|
def multi_search( params = {}, &block )
|
526
525
|
raise "a block is required" if block.nil?
|
527
526
|
|
528
|
-
params = {:
|
527
|
+
params = {index: self.name, type: self.type}.merge params
|
529
528
|
client.multi_search params, &block
|
530
529
|
end
|
531
530
|
|
@@ -543,8 +542,8 @@ Percolate
|
|
543
542
|
#
|
544
543
|
# # block form
|
545
544
|
# multi_percolate do |m|
|
546
|
-
# m.percolate(:
|
547
|
-
# m.count(:
|
545
|
+
# m.percolate(author: "pea53")
|
546
|
+
# m.count(author: "grantr")
|
548
547
|
# ...
|
549
548
|
# end
|
550
549
|
#
|
@@ -554,6 +553,11 @@ Percolate
|
|
554
553
|
client.multi_percolate(params, &block)
|
555
554
|
end
|
556
555
|
|
556
|
+
SPECIAL_KEYS= %i[
|
557
|
+
index type id version version_type op_type routing parent timestamp ttl
|
558
|
+
consistency replication refresh wait_for_active_shards
|
559
|
+
].inject({}) { |h,k| h[k] = "_#{k}"; h }.freeze
|
560
|
+
|
557
561
|
# Internal: Given a `document` generate an options hash that will
|
558
562
|
# override parameters based on the content of the document. The document
|
559
563
|
# will be returned as the value of the :body key.
|
@@ -568,26 +572,13 @@ Percolate
|
|
568
572
|
# Raises Elastomer::Client::IllegalArgument if an unsupported indexing
|
569
573
|
# directive is used.
|
570
574
|
def from_document( document )
|
571
|
-
opts = {:
|
575
|
+
opts = {body: document}
|
572
576
|
|
573
577
|
if document.is_a? Hash
|
574
|
-
|
578
|
+
SPECIAL_KEYS.each do |key, field|
|
575
579
|
opts[key] = document.delete field if document.key? field
|
576
580
|
opts[key] = document.delete field.to_sym if document.key? field.to_sym
|
577
581
|
end
|
578
|
-
|
579
|
-
# COMPATIBILITY
|
580
|
-
# Fail fast if a consumer is attempting to use an indexing parameter
|
581
|
-
# for a different version of Elasticsearch. Elasticsearch 5+ is strict
|
582
|
-
# about parameter names so we need to either ignore these (in which
|
583
|
-
# case they would be indexed with the document) or fail-fast.
|
584
|
-
# Elasticsearch 2.X will happily ignore unknown parameters, but we
|
585
|
-
# felt it was best to consistently fail fast.
|
586
|
-
client.version_support.unsupported_indexing_directives.each do |key, field|
|
587
|
-
if document.key?(field) || document.key?(field.to_sym)
|
588
|
-
raise IllegalArgument, "Elasticsearch #{client.version} does not support the '#{key}' indexing parameter"
|
589
|
-
end
|
590
|
-
end
|
591
582
|
end
|
592
583
|
|
593
584
|
opts
|
@@ -609,7 +600,7 @@ Percolate
|
|
609
600
|
|
610
601
|
# Internal: Returns a Hash containing default parameters.
|
611
602
|
def defaults
|
612
|
-
{ :
|
603
|
+
{ index: name, type: type }
|
613
604
|
end
|
614
605
|
|
615
606
|
# Internal: Allow params to be passed as the first argument to
|