es-elasticity 0.12.0 → 0.13.3.pre1
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 +5 -5
- data/.circleci/config.yml +223 -0
- data/.gitignore +10 -7
- data/.rubocop.yml +23 -0
- data/CHANGELOG.md +143 -0
- data/Gemfile +4 -4
- data/Gemfile.lock +94 -0
- data/README.md +17 -3
- data/Rakefile +5 -1
- data/{elasticity.gemspec → es-elasticity.gemspec} +6 -0
- data/lib/elasticity.rb +1 -0
- data/lib/elasticity/index_config.rb +3 -2
- data/lib/elasticity/index_mapper.rb +8 -1
- data/lib/elasticity/instrumented_client.rb +1 -1
- data/lib/elasticity/search.rb +19 -4
- data/lib/elasticity/strategies/alias_index.rb +26 -8
- data/lib/elasticity/strategies/single_index.rb +12 -2
- data/lib/elasticity/version.rb +1 -1
- data/tasks/ci.rake +12 -0
- data/tasks/rdoc.rake +14 -0
- metadata +61 -35
- data/.travis.yml +0 -17
- data/CHANGELOG +0 -76
- data/bin/rake +0 -16
- data/bin/rspec +0 -16
- data/es-elasticity-0.12.0.pre.rc1.gem +0 -0
- data/spec/functional/persistence_spec.rb +0 -439
- data/spec/functional/search_spec.rb +0 -117
- data/spec/functional/segmented_spec.rb +0 -86
- data/spec/rspec_config.rb +0 -42
- data/spec/units/document_spec.rb +0 -63
- data/spec/units/index_config_spec.rb +0 -97
- data/spec/units/index_mapper_spec.rb +0 -4
- data/spec/units/multi_search_response_parser_spec.rb +0 -121
- data/spec/units/multi_search_spec.rb +0 -158
- data/spec/units/search_spec.rb +0 -230
- data/spec/units/strategies/single_index_spec.rb +0 -85
data/README.md
CHANGED
@@ -31,7 +31,7 @@ Or install it yourself as:
|
|
31
31
|
### Version Support
|
32
32
|
This gem has [elasticsearch-ruby](https://github.com/elastic/elasticsearch-ruby) as a dependency. In order to use different versions of elasticsearch you will need to match your version of elasticsearch-ruby to the version of elasticsearch you want to use ([see here](https://github.com/elastic/elasticsearch-ruby#compatibility). Elasticity should work across all versions of elastisearch-ruby, although they have not all been tested so there are likely edge cases.
|
33
33
|
|
34
|
-
Currently tests are run on
|
34
|
+
Currently tests are run on CirlceCI against elasticsearch 6.8.2 with elasticsearch-ruby 7.2.0.
|
35
35
|
|
36
36
|
### Configuration
|
37
37
|
|
@@ -194,7 +194,7 @@ adults = adults.active_records(User)
|
|
194
194
|
#### Search Args
|
195
195
|
|
196
196
|
##### explain: true
|
197
|
-
For `search` definitions we support passing `{ explain: true }` to the search as a second argument in order to surface the reason a search result was returned.
|
197
|
+
For `search` definitions we support passing `{ explain: true }` to the search as a second argument in order to surface the reason a search result was returned.
|
198
198
|
|
199
199
|
```ruby
|
200
200
|
# example in single search
|
@@ -359,7 +359,7 @@ For example:
|
|
359
359
|
Search::User.from_active_record(self).update
|
360
360
|
end
|
361
361
|
|
362
|
-
def
|
362
|
+
def delete_index_document
|
363
363
|
Search::User.delete(self.id)
|
364
364
|
end
|
365
365
|
end
|
@@ -443,6 +443,20 @@ The default persistence strategy changed from SingleIndex to AliasIndex in versi
|
|
443
443
|
5. Create a new Pull Request
|
444
444
|
6. Sign the CLA if you haven't yet. See CONTRIBUTING.md
|
445
445
|
|
446
|
+
## Gem documentation
|
447
|
+
|
448
|
+
You can find the documentation by going to CircleCI, looking for the `build` job, going to Artifacts and clicking on `index.html`. A visual guide on this can be found in our wiki at [Gems Development: Where to find documentation for our gems](https://wiki.doximity.com/articles/gems-development-where-to-find-documentation-for-our-gems).
|
449
|
+
|
450
|
+
## Gem development
|
451
|
+
|
452
|
+
After checking out the repo, run `bundle install` to install dependencies. Then, run `rake spec` to run the tests.
|
453
|
+
You can also run `bundle console` for an interactive prompt that will allow you to experiment.
|
454
|
+
|
455
|
+
This repository uses a gem publishing mechanism on the CI configuration, meaning most work related with cutting a new
|
456
|
+
version is done automatically.
|
457
|
+
|
458
|
+
To release a new version, follow the [wiki instructions](https://wiki.doximity.com/articles/gems-development-releasing-new-versions).
|
459
|
+
|
446
460
|
## License
|
447
461
|
|
448
462
|
MPN is licensed under an Apache 2 license. Contributors are required to sign an contributor license agreement. See LICENSE.txt and CONTRIBUTING.md for more information.
|
data/Rakefile
CHANGED
@@ -14,6 +14,9 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
|
+
f.match(%r{^(bin|test|spec|vendor|tmp|coverage)/})
|
19
|
+
end
|
17
20
|
# spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
21
|
spec.executables = []
|
19
22
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
@@ -28,8 +31,11 @@ Gem::Specification.new do |spec|
|
|
28
31
|
spec.add_development_dependency "byebug"
|
29
32
|
spec.add_development_dependency "codeclimate-test-reporter"
|
30
33
|
spec.add_development_dependency "redis"
|
34
|
+
spec.add_development_dependency "timecop"
|
35
|
+
spec.add_development_dependency "rspec_junit_formatter"
|
31
36
|
|
32
37
|
spec.add_dependency "activesupport", ">= 4.0.0", "< 6"
|
33
38
|
spec.add_dependency "activemodel", ">= 4.0.0", "< 6"
|
39
|
+
spec.add_dependency "activerecord", ">= 4.0.0", "< 6"
|
34
40
|
spec.add_dependency "elasticsearch", ">= 1.0"
|
35
41
|
end
|
data/lib/elasticity.rb
CHANGED
@@ -10,7 +10,7 @@ module Elasticity
|
|
10
10
|
VERSION_FOR_SUBCLASS_ERROR = "7.0.0".freeze
|
11
11
|
ATTRS = [
|
12
12
|
:index_base_name, :document_type, :mapping, :strategy, :subclasses,
|
13
|
-
:settings
|
13
|
+
:settings, :use_new_timestamp_format, :include_type_name_on_create
|
14
14
|
].freeze
|
15
15
|
VALIDATABLE_ATTRS = [:index_base_name, :document_type, :strategy].freeze
|
16
16
|
|
@@ -39,7 +39,8 @@ module Elasticity
|
|
39
39
|
def definition
|
40
40
|
return @definition if defined?(@definition)
|
41
41
|
@definition = {
|
42
|
-
settings: merge_settings,
|
42
|
+
settings: merge_settings,
|
43
|
+
mappings: { @document_type => @mapping.nil? ? {} : @mapping.deep_stringify_keys }
|
43
44
|
}
|
44
45
|
subclasses.each do |doc_type, subclass|
|
45
46
|
@definition[:mappings][doc_type] = subclass.constantize.mapping
|
@@ -11,6 +11,7 @@ module Elasticity
|
|
11
11
|
:index_exists?,
|
12
12
|
:remap!,
|
13
13
|
:flush_index,
|
14
|
+
:refresh_index,
|
14
15
|
:index_document,
|
15
16
|
:search,
|
16
17
|
:get,
|
@@ -27,7 +28,7 @@ module Elasticity
|
|
27
28
|
def initialize(document_klass, index_config)
|
28
29
|
@document_klass = document_klass
|
29
30
|
@index_config = index_config
|
30
|
-
@strategy = @index_config.strategy.new(@index_config.client, @index_config.fq_index_base_name, @index_config.document_type)
|
31
|
+
@strategy = @index_config.strategy.new(@index_config.client, @index_config.fq_index_base_name, @index_config.document_type, @index_config.use_new_timestamp_format, @index_config.include_type_name_on_create)
|
31
32
|
end
|
32
33
|
|
33
34
|
delegate(
|
@@ -71,10 +72,16 @@ module Elasticity
|
|
71
72
|
end
|
72
73
|
|
73
74
|
# Flushes the index, forcing any writes
|
75
|
+
# note that v7 no longer forces any writes on flush
|
74
76
|
def flush_index
|
75
77
|
@strategy.flush
|
76
78
|
end
|
77
79
|
|
80
|
+
# Resfreshes the index, forcing any writes
|
81
|
+
def refresh_index
|
82
|
+
@strategy.refresh
|
83
|
+
end
|
84
|
+
|
78
85
|
# Index the given document
|
79
86
|
def index_document(id, document_hash)
|
80
87
|
@strategy.index_document(document_type, id, document_hash)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Elasticity
|
2
2
|
class InstrumentedClient
|
3
|
-
INDICES_METHODS = %w(exists create delete get_settings get_mapping flush get_alias get_aliases put_alias delete_alias exists_alias update_aliases)
|
3
|
+
INDICES_METHODS = %w(exists create delete get_settings get_mapping flush refresh get_alias get_aliases put_alias delete_alias exists_alias update_aliases)
|
4
4
|
INDEX_METHODS = %w(index delete get mget search count msearch scroll delete_by_query bulk)
|
5
5
|
|
6
6
|
def initialize(client)
|
data/lib/elasticity/search.rb
CHANGED
@@ -147,7 +147,12 @@ module Elasticity
|
|
147
147
|
end
|
148
148
|
|
149
149
|
def total
|
150
|
-
search["hits"]["total"]
|
150
|
+
res = search["hits"]["total"]
|
151
|
+
if res.is_a?(::Hash)
|
152
|
+
res["value"]
|
153
|
+
else
|
154
|
+
res
|
155
|
+
end
|
151
156
|
end
|
152
157
|
|
153
158
|
def each_batch
|
@@ -193,7 +198,7 @@ module Elasticity
|
|
193
198
|
if ids.any?
|
194
199
|
id_col = "#{relation.connection.quote_column_name(relation.table_name)}.#{relation.connection.quote_column_name(relation.klass.primary_key)}"
|
195
200
|
id_vals = ids.map { |id| relation.connection.quote(id) }
|
196
|
-
Relation.new(relation.where("#{id_col} IN (?)", ids).order("FIELD(#{id_col}, #{id_vals.join(',')})"), body, response)
|
201
|
+
Relation.new(relation.where("#{id_col} IN (?)", ids).order(Arel.sql("FIELD(#{id_col}, #{id_vals.join(',')})")), body, response)
|
197
202
|
else
|
198
203
|
Relation.new(relation.none, body, response)
|
199
204
|
end
|
@@ -237,7 +242,12 @@ module Elasticity
|
|
237
242
|
end
|
238
243
|
|
239
244
|
def total
|
240
|
-
metadata[:total]
|
245
|
+
res = metadata[:total]
|
246
|
+
if res.is_a?(::Hash)
|
247
|
+
res["value"]
|
248
|
+
else
|
249
|
+
res
|
250
|
+
end
|
241
251
|
end
|
242
252
|
|
243
253
|
def suggestions
|
@@ -311,7 +321,12 @@ module Elasticity
|
|
311
321
|
end
|
312
322
|
|
313
323
|
def total
|
314
|
-
@response["hits"]["total"]
|
324
|
+
res = @response["hits"]["total"]
|
325
|
+
if res.is_a?(::Hash)
|
326
|
+
res["value"]
|
327
|
+
else
|
328
|
+
res
|
329
|
+
end
|
315
330
|
end
|
316
331
|
alias_method :total_entries, :total
|
317
332
|
|
@@ -11,11 +11,15 @@ module Elasticity
|
|
11
11
|
|
12
12
|
STATUSES = [:missing, :ok]
|
13
13
|
|
14
|
-
def initialize(client, index_base_name, document_type)
|
14
|
+
def initialize(client, index_base_name, document_type, use_new_timestamp_format = false, include_type_name_on_create = true)
|
15
15
|
@client = client
|
16
16
|
@main_alias = index_base_name
|
17
17
|
@update_alias = "#{index_base_name}_update"
|
18
18
|
@document_type = document_type
|
19
|
+
|
20
|
+
# included for compatibility with v7
|
21
|
+
@use_new_timestamp_format = use_new_timestamp_format
|
22
|
+
@include_type_name_on_create = include_type_name_on_create
|
19
23
|
end
|
20
24
|
|
21
25
|
def ref_index_name
|
@@ -186,11 +190,12 @@ module Elasticity
|
|
186
190
|
|
187
191
|
def create(index_def)
|
188
192
|
if missing?
|
189
|
-
|
193
|
+
name = create_index(index_def)
|
194
|
+
@created_index_name = name
|
190
195
|
@client.index_update_aliases(body: {
|
191
196
|
actions: [
|
192
|
-
{ add: { index:
|
193
|
-
{ add: { index:
|
197
|
+
{ add: { index: name, alias: @main_alias } },
|
198
|
+
{ add: { index: name, alias: @update_alias } },
|
194
199
|
]
|
195
200
|
})
|
196
201
|
else
|
@@ -257,6 +262,10 @@ module Elasticity
|
|
257
262
|
@client.index_flush(index: @update_alias)
|
258
263
|
end
|
259
264
|
|
265
|
+
def refresh
|
266
|
+
@client.index_refresh(index: @update_alias)
|
267
|
+
end
|
268
|
+
|
260
269
|
def settings
|
261
270
|
@client.index_get_settings(index: @main_alias, type: @document_type).values.first
|
262
271
|
rescue Elasticsearch::Transport::Transport::Errors::NotFound
|
@@ -279,11 +288,20 @@ module Elasticity
|
|
279
288
|
|
280
289
|
private
|
281
290
|
|
291
|
+
def build_index_name
|
292
|
+
ts = String.new
|
293
|
+
if @use_new_timestamp_format == true
|
294
|
+
ts = Time.now.utc.strftime("%Y%m%d%H%M%S%6N")
|
295
|
+
else
|
296
|
+
ts = Time.now.utc.strftime("%Y-%m-%d_%H:%M:%S.%6N")
|
297
|
+
end
|
298
|
+
"#{@main_alias}-#{ts}"
|
299
|
+
end
|
300
|
+
|
282
301
|
def create_index(index_def)
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
index_name
|
302
|
+
name = build_index_name
|
303
|
+
@client.index_create(index: name, body: index_def, include_type_name: @include_type_name_on_create)
|
304
|
+
name
|
287
305
|
end
|
288
306
|
|
289
307
|
def retryable_error?(e)
|
@@ -3,10 +3,16 @@ module Elasticity
|
|
3
3
|
class SingleIndex
|
4
4
|
STATUSES = [:missing, :ok]
|
5
5
|
|
6
|
-
def initialize(client, index_name, document_type)
|
6
|
+
def initialize(client, index_name, document_type, use_new_timestamp_format = false, include_type_name_on_create = true)
|
7
7
|
@client = client
|
8
8
|
@index_name = index_name
|
9
9
|
@document_type = document_type
|
10
|
+
|
11
|
+
# included for compatibility with v7
|
12
|
+
@include_type_name_on_create = include_type_name_on_create
|
13
|
+
|
14
|
+
# not currently used. included for argument compatiblity with AliasStrategy
|
15
|
+
@use_new_timestamp_format = use_new_timestamp_format
|
10
16
|
end
|
11
17
|
|
12
18
|
def ref_index_name
|
@@ -23,7 +29,7 @@ module Elasticity
|
|
23
29
|
|
24
30
|
def create(index_def)
|
25
31
|
if missing?
|
26
|
-
@client.index_create(index: @index_name, body: index_def)
|
32
|
+
@client.index_create(index: @index_name, body: index_def, include_type_name: @include_type_name_on_create)
|
27
33
|
else
|
28
34
|
raise IndexError.new(@index_name, "index already exist")
|
29
35
|
end
|
@@ -101,6 +107,10 @@ module Elasticity
|
|
101
107
|
def flush
|
102
108
|
@client.index_flush(index: @index_name)
|
103
109
|
end
|
110
|
+
|
111
|
+
def refresh
|
112
|
+
@client.index_refresh(index: @index_name)
|
113
|
+
end
|
104
114
|
end
|
105
115
|
end
|
106
116
|
end
|
data/lib/elasticity/version.rb
CHANGED
data/tasks/ci.rake
ADDED
data/tasks/rdoc.rake
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozeon_string_literal: true
|
2
|
+
|
3
|
+
require "rdoc/task"
|
4
|
+
|
5
|
+
RDoc::Task.new do |rdoc|
|
6
|
+
rdoc.main = "README.md"
|
7
|
+
rdoc.markup = "tomdoc"
|
8
|
+
rdoc.options << "--github --encoding=UTF-8"
|
9
|
+
rdoc.rdoc_dir = "doc"
|
10
|
+
rdoc.rdoc_files.exclude("vendor", "tmp")
|
11
|
+
rdoc.rdoc_files.include("README.md", "lib", "*.rb")
|
12
|
+
rdoc.template = "rails"
|
13
|
+
rdoc.title = "Documentation"
|
14
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: es-elasticity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.3.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Kochenburger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,34 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: timecop
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rspec_junit_formatter
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
139
167
|
- !ruby/object:Gem::Dependency
|
140
168
|
name: activesupport
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,6 +204,26 @@ dependencies:
|
|
176
204
|
- - "<"
|
177
205
|
- !ruby/object:Gem::Version
|
178
206
|
version: '6'
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: activerecord
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - ">="
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: 4.0.0
|
214
|
+
- - "<"
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '6'
|
217
|
+
type: :runtime
|
218
|
+
prerelease: false
|
219
|
+
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: 4.0.0
|
224
|
+
- - "<"
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
version: '6'
|
179
227
|
- !ruby/object:Gem::Dependency
|
180
228
|
name: elasticsearch
|
181
229
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,20 +246,19 @@ executables: []
|
|
198
246
|
extensions: []
|
199
247
|
extra_rdoc_files: []
|
200
248
|
files:
|
249
|
+
- ".circleci/config.yml"
|
201
250
|
- ".gitignore"
|
202
251
|
- ".rspec"
|
252
|
+
- ".rubocop.yml"
|
203
253
|
- ".simplecov"
|
204
|
-
-
|
205
|
-
- CHANGELOG
|
254
|
+
- CHANGELOG.md
|
206
255
|
- CONTRIBUTING.md
|
207
256
|
- Gemfile
|
257
|
+
- Gemfile.lock
|
208
258
|
- LICENSE.txt
|
209
259
|
- README.md
|
210
260
|
- Rakefile
|
211
|
-
-
|
212
|
-
- bin/rspec
|
213
|
-
- elasticity.gemspec
|
214
|
-
- es-elasticity-0.12.0.pre.rc1.gem
|
261
|
+
- es-elasticity.gemspec
|
215
262
|
- lib/elasticity.rb
|
216
263
|
- lib/elasticity/base_document.rb
|
217
264
|
- lib/elasticity/bulk.rb
|
@@ -231,17 +278,8 @@ files:
|
|
231
278
|
- lib/elasticity/strategies/alias_index.rb
|
232
279
|
- lib/elasticity/strategies/single_index.rb
|
233
280
|
- lib/elasticity/version.rb
|
234
|
-
-
|
235
|
-
-
|
236
|
-
- spec/functional/segmented_spec.rb
|
237
|
-
- spec/rspec_config.rb
|
238
|
-
- spec/units/document_spec.rb
|
239
|
-
- spec/units/index_config_spec.rb
|
240
|
-
- spec/units/index_mapper_spec.rb
|
241
|
-
- spec/units/multi_search_response_parser_spec.rb
|
242
|
-
- spec/units/multi_search_spec.rb
|
243
|
-
- spec/units/search_spec.rb
|
244
|
-
- spec/units/strategies/single_index_spec.rb
|
281
|
+
- tasks/ci.rake
|
282
|
+
- tasks/rdoc.rake
|
245
283
|
homepage: ''
|
246
284
|
licenses:
|
247
285
|
- MIT
|
@@ -257,24 +295,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
257
295
|
version: '0'
|
258
296
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
259
297
|
requirements:
|
260
|
-
- - "
|
298
|
+
- - ">"
|
261
299
|
- !ruby/object:Gem::Version
|
262
|
-
version:
|
300
|
+
version: 1.3.1
|
263
301
|
requirements: []
|
264
|
-
|
265
|
-
rubygems_version: 2.6.13
|
302
|
+
rubygems_version: 3.1.2
|
266
303
|
signing_key:
|
267
304
|
specification_version: 4
|
268
305
|
summary: ActiveModel-based library for working with Elasticsearch
|
269
|
-
test_files:
|
270
|
-
- spec/functional/persistence_spec.rb
|
271
|
-
- spec/functional/search_spec.rb
|
272
|
-
- spec/functional/segmented_spec.rb
|
273
|
-
- spec/rspec_config.rb
|
274
|
-
- spec/units/document_spec.rb
|
275
|
-
- spec/units/index_config_spec.rb
|
276
|
-
- spec/units/index_mapper_spec.rb
|
277
|
-
- spec/units/multi_search_response_parser_spec.rb
|
278
|
-
- spec/units/multi_search_spec.rb
|
279
|
-
- spec/units/search_spec.rb
|
280
|
-
- spec/units/strategies/single_index_spec.rb
|
306
|
+
test_files: []
|