Commit 05bde2abd78299bff47ec0e64d6feed68dd6ab81

Authored by Andrew Kane
1 parent 80f8811a

Fixed reindex with inheritance - closes #194

lib/searchkick/index.rb
... ... @@ -40,11 +40,11 @@ module Searchkick
40 40 end
41 41  
42 42 def import(records)
43   - if records.any?
  43 + records.group_by{|r| document_type(r) }.each do |type, batch|
44 44 client.bulk(
45 45 index: name,
46   - type: document_type(records.first),
47   - body: records.map{|r| data = search_data(r); {index: {_id: data["_id"] || data["id"] || r.id, data: data}} }
  46 + type: type,
  47 + body: batch.map{|r| data = search_data(r); {index: {_id: data["_id"] || data["id"] || r.id, data: data}} }
48 48 )
49 49 end
50 50 end
... ...
test/inheritance_test.rb
... ... @@ -62,6 +62,13 @@ class TestInheritance < Minitest::Unit::TestCase
62 62 assert_equal ["tiger"], Animal.search("tige", fields: [:name], suggest: true).suggestions.sort
63 63 end
64 64  
  65 + def test_reindex
  66 + store_names ["Bear A"], Cat
  67 + store_names ["Bear B"], Dog
  68 + Animal.reindex
  69 + assert_equal 1, Dog.search("bear").size
  70 + end
  71 +
65 72 # TODO move somewhere better
66 73  
67 74 def test_multiple_indices
... ...