Commit acb7013b93743e96bfa669c0bb4be0d15e171e2c
1 parent
3517290f
Exists in
master
and in
21 other branches
Added select option for load: false - closes #225
Showing
3 changed files
with
17 additions
and
1 deletions
Show diff stats
CHANGELOG.md
lib/searchkick/results.rb
... | ... | @@ -38,7 +38,12 @@ module Searchkick |
38 | 38 | end.compact |
39 | 39 | else |
40 | 40 | hits.map do |hit| |
41 | - result = hit.except("_source").merge(hit["_source"]) | |
41 | + result = | |
42 | + if hit["_source"] | |
43 | + hit.except("_source").merge(hit["_source"]) | |
44 | + else | |
45 | + hit.except("fields").merge(Hash[ hit["fields"].map{|k, v| [k, v.first] } ]) | |
46 | + end | |
42 | 47 | result["id"] ||= result["_id"] # needed for legacy reasons |
43 | 48 | Hashie::Mash.new(result) |
44 | 49 | end | ... | ... |
test/sql_test.rb
... | ... | @@ -274,6 +274,13 @@ class TestSql < Minitest::Unit::TestCase |
274 | 274 | assert_kind_of Hash, Product.search("product", load: false, include: [:store]).first |
275 | 275 | end |
276 | 276 | |
277 | + # select | |
278 | + | |
279 | + def test_select | |
280 | + store [{name: "Product A", store_id: 1}] | |
281 | + assert_equal %w[id name store_id], Product.search("product", load: false, select: [:name, :store_id]).first.keys.reject{|k| k.start_with?("_") }.sort | |
282 | + end | |
283 | + | |
277 | 284 | # TODO see if Mongoid is loaded |
278 | 285 | if !defined?(Mongoid) |
279 | 286 | def test_include | ... | ... |