diff --git a/lib/searchkick/index.rb b/lib/searchkick/index.rb index d277dc1..f3f082e 100644 --- a/lib/searchkick/index.rb +++ b/lib/searchkick/index.rb @@ -40,11 +40,11 @@ module Searchkick end def import(records) - if records.any? + records.group_by{|r| document_type(r) }.each do |type, batch| client.bulk( index: name, - type: document_type(records.first), - body: records.map{|r| data = search_data(r); {index: {_id: data["_id"] || data["id"] || r.id, data: data}} } + type: type, + body: batch.map{|r| data = search_data(r); {index: {_id: data["_id"] || data["id"] || r.id, data: data}} } ) end end diff --git a/test/inheritance_test.rb b/test/inheritance_test.rb index 0840a5e..c6dde4f 100644 --- a/test/inheritance_test.rb +++ b/test/inheritance_test.rb @@ -62,6 +62,13 @@ class TestInheritance < Minitest::Unit::TestCase assert_equal ["tiger"], Animal.search("tige", fields: [:name], suggest: true).suggestions.sort end + def test_reindex + store_names ["Bear A"], Cat + store_names ["Bear B"], Dog + Animal.reindex + assert_equal 1, Dog.search("bear").size + end + # TODO move somewhere better def test_multiple_indices -- libgit2 0.21.0