Commit 0d8b5166e3e7d5bce925cfe63c08d3f71c4d09a9

Authored by Andrew
1 parent aaf41f0e

Moved to bulk indexer [skip ci]

lib/searchkick/bulk_indexer.rb
@@ -36,6 +36,18 @@ module Searchkick @@ -36,6 +36,18 @@ module Searchkick
36 end 36 end
37 end 37 end
38 38
  39 + def bulk_index(records)
  40 + Searchkick.indexer.queue(records.map { |r| RecordData.new(index, r).index_data })
  41 + end
  42 +
  43 + def bulk_delete(records)
  44 + Searchkick.indexer.queue(records.reject { |r| r.id.blank? }.map { |r| RecordData.new(index, r).delete_data })
  45 + end
  46 +
  47 + def bulk_update(records, method_name)
  48 + Searchkick.indexer.queue(records.map { |r| RecordData.new(index, r).update_data(method_name) })
  49 + end
  50 +
39 private 51 private
40 52
41 def import_or_update(records, method_name, async) 53 def import_or_update(records, method_name, async)
@@ -51,7 +63,7 @@ module Searchkick @@ -51,7 +63,7 @@ module Searchkick
51 records = records.select(&:should_index?) 63 records = records.select(&:should_index?)
52 if records.any? 64 if records.any?
53 with_retries do 65 with_retries do
54 - method_name ? index.bulk_update(records, method_name) : index.import(records) 66 + method_name ? bulk_update(records, method_name) : bulk_index(records)
55 end 67 end
56 end 68 end
57 end 69 end
lib/searchkick/index.rb
@@ -77,28 +77,28 @@ module Searchkick @@ -77,28 +77,28 @@ module Searchkick
77 # use helpers for notifications 77 # use helpers for notifications
78 78
79 def store(record) 79 def store(record)
80 - bulk_index_helper([record]) 80 + bulk_indexer.bulk_index([record])
81 end 81 end
82 82
83 def remove(record) 83 def remove(record)
84 - bulk_delete_helper([record]) 84 + bulk_indexer.bulk_delete([record])
85 end 85 end
86 86
87 def update_record(record, method_name) 87 def update_record(record, method_name)
88 - bulk_update_helper([record], method_name) 88 + bulk_indexer.bulk_update([record], method_name)
89 end 89 end
90 90
91 def bulk_delete(records) 91 def bulk_delete(records)
92 - bulk_delete_helper(records) 92 + bulk_indexer.bulk_delete(records)
93 end 93 end
94 94
95 def bulk_index(records) 95 def bulk_index(records)
96 - bulk_index_helper(records) 96 + bulk_indexer.bulk_index(records)
97 end 97 end
98 alias_method :import, :bulk_index 98 alias_method :import, :bulk_index
99 99
100 def bulk_update(records, method_name) 100 def bulk_update(records, method_name)
101 - bulk_update_helper(records, method_name) 101 + bulk_indexer.bulk_update(records, method_name)
102 end 102 end
103 103
104 def retrieve(record) 104 def retrieve(record)
@@ -327,17 +327,5 @@ module Searchkick @@ -327,17 +327,5 @@ module Searchkick
327 def bulk_indexer 327 def bulk_indexer
328 @bulk_indexer ||= BulkIndexer.new(self) 328 @bulk_indexer ||= BulkIndexer.new(self)
329 end 329 end
330 -  
331 - def bulk_index_helper(records)  
332 - Searchkick.indexer.queue(records.map { |r| RecordData.new(self, r).index_data })  
333 - end  
334 -  
335 - def bulk_delete_helper(records)  
336 - Searchkick.indexer.queue(records.reject { |r| r.id.blank? }.map { |r| RecordData.new(self, r).delete_data })  
337 - end  
338 -  
339 - def bulk_update_helper(records, method_name)  
340 - Searchkick.indexer.queue(records.map { |r| RecordData.new(self, r).update_data(method_name) })  
341 - end  
342 end 330 end
343 end 331 end