Commit 89a2e697afc19b43af9fe113013de1642d85011d

Authored by Andrew Kane
1 parent e7979a5c

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 = {}
... ...