Commit 6522ba3b35589abc09bf4b36a5f5bb5c335e7d40

Authored by Andrew Kane
1 parent 96733e00

Treat _id and id differently - closes #203

1 ## 0.7.6 [unreleased] 1 ## 0.7.6 [unreleased]
2 2
  3 +- Treat `id` and `_id` differently
3 - Added `padding` option 4 - Added `padding` option
4 5
5 ## 0.7.5 6 ## 0.7.5
lib/searchkick/index.rb
@@ -83,7 +83,8 @@ module Searchkick @@ -83,7 +83,8 @@ module Searchkick
83 source = record.search_data 83 source = record.search_data
84 84
85 # stringify fields 85 # stringify fields
86 - source = source.inject({}){|memo,(k,v)| memo[k.to_s] = v; memo}.except("id", "_id") 86 + source = source.inject({}){|memo,(k,v)| memo[k.to_s] = v; memo}.except("_id")
  87 + source["id"] ||= search_id(record)
87 88
88 options = record.class.searchkick_options 89 options = record.class.searchkick_options
89 90
lib/searchkick/query.rb
@@ -195,8 +195,7 @@ module Searchkick @@ -195,8 +195,7 @@ module Searchkick
195 195
196 # order 196 # order
197 if options[:order] 197 if options[:order]
198 - order = options[:order].is_a?(Enumerable) ? options[:order] : {options[:order] => :asc}  
199 - payload[:sort] = Hash[ order.map{|k, v| [k.to_s == "id" ? :_id : k, v] } ] 198 + payload[:sort] = options[:order].is_a?(Enumerable) ? options[:order] : {options[:order] => :asc}
200 end 199 end
201 200
202 # filters 201 # filters
@@ -383,8 +382,6 @@ module Searchkick @@ -383,8 +382,6 @@ module Searchkick
383 def where_filters(where) 382 def where_filters(where)
384 filters = [] 383 filters = []
385 (where || {}).each do |field, value| 384 (where || {}).each do |field, value|
386 - field = :_id if field.to_s == "id"  
387 -  
388 if field == :or 385 if field == :or
389 value.each do |or_clause| 386 value.each do |or_clause|
390 filters << {or: or_clause.map{|or_statement| {and: where_filters(or_statement)} }} 387 filters << {or: or_clause.map{|or_statement| {and: where_filters(or_statement)} }}
lib/searchkick/results.rb
@@ -39,7 +39,7 @@ module Searchkick @@ -39,7 +39,7 @@ module Searchkick
39 else 39 else
40 hits.map do |hit| 40 hits.map do |hit|
41 result = hit.except("_source").merge(hit["_source"]) 41 result = hit.except("_source").merge(hit["_source"])
42 - result["id"] = result["_id"] 42 + result["id"] ||= result["_id"] # needed for legacy reasons
43 Hashie::Mash.new(result) 43 Hashie::Mash.new(result)
44 end 44 end
45 end 45 end