Commit 89a2e697afc19b43af9fe113013de1642d85011d
1 parent
e7979a5c
Exists in
master
and in
2 other branches
Fixed issue with merge_mappings [skip ci]
Showing
2 changed files
with
10 additions
and
9 deletions
Show diff stats
CHANGELOG.md
... | ... | @@ -6,6 +6,8 @@ |
6 | 6 | - Raise error when `search` called on relations |
7 | 7 | - Raise `ArgumentError` (instead of warning) for invalid regular expression modifiers |
8 | 8 | - Raise `ArgumentError` instead of `RuntimeError` for unknown operators |
9 | +- Updated `searchkick_index_options` to return symbol keys (instead of mix of strings and symbols) | |
10 | +- Fixed issue with `merge_mappings` | |
9 | 11 | - Removed mapping of `id` to `_id` with `order` option |
10 | 12 | - Removed `wordnet` option |
11 | 13 | - Removed `elasticsearch` dependency | ... | ... |
lib/searchkick/index_options.rb
... | ... | @@ -7,14 +7,16 @@ module Searchkick |
7 | 7 | end |
8 | 8 | |
9 | 9 | def index_options |
10 | - custom_mapping = options[:mappings] || {} | |
10 | + # mortal symbols are garbage collected in Ruby 2.2+ | |
11 | + custom_settings = (options[:settings] || {}).deep_symbolize_keys | |
12 | + custom_mappings = (options[:mappings] || {}).deep_symbolize_keys | |
11 | 13 | |
12 | 14 | if options[:mappings] && !options[:merge_mappings] |
13 | - settings = options[:settings] || {} | |
14 | - mappings = custom_mapping | |
15 | + settings = custom_settings | |
16 | + mappings = custom_mappings | |
15 | 17 | else |
16 | - settings = generate_settings | |
17 | - mappings = generate_mappings.symbolize_keys.deep_merge(custom_mapping.symbolize_keys) | |
18 | + settings = generate_settings.deep_symbolize_keys.deep_merge(custom_settings) | |
19 | + mappings = generate_mappings.deep_symbolize_keys.deep_merge(custom_mappings) | |
18 | 20 | end |
19 | 21 | |
20 | 22 | set_deep_paging(settings) if options[:deep_paging] |
... | ... | @@ -182,9 +184,6 @@ module Searchkick |
182 | 184 | end |
183 | 185 | end |
184 | 186 | |
185 | - # merge settings option last | |
186 | - settings = settings.symbolize_keys.deep_merge((options[:settings] || {}).symbolize_keys) | |
187 | - | |
188 | 187 | settings |
189 | 188 | end |
190 | 189 | |
... | ... | @@ -367,7 +366,7 @@ module Searchkick |
367 | 366 | |
368 | 367 | mapping_options[:searchable].delete("_all") |
369 | 368 | |
370 | - analyzed_field_options = {type: default_type, index: true, analyzer: default_analyzer} | |
369 | + analyzed_field_options = {type: default_type, index: true, analyzer: default_analyzer.to_s} | |
371 | 370 | |
372 | 371 | mapping_options.values.flatten.uniq.each do |field| |
373 | 372 | fields = {} | ... | ... |