lib/searchkick.rb in searchkick-1.2.0 vs lib/searchkick.rb in searchkick-1.2.1
- old
+ new
@@ -7,11 +7,11 @@
require "searchkick/query"
require "searchkick/reindex_job"
require "searchkick/model"
require "searchkick/tasks"
require "searchkick/middleware"
-require "searchkick/logging" if defined?(Rails)
+require "searchkick/logging" if defined?(ActiveSupport::Notifications)
# background jobs
begin
require "active_job"
rescue LoadError
@@ -135,9 +135,19 @@
if options[:execute] == false
query
else
query.execute
end
+ end
+
+ def self.multi_search(queries)
+ if queries.any?
+ responses = client.msearch(body: queries.flat_map { |q| [q.params.except(:body), q.body] })["responses"]
+ queries.each_with_index do |query, i|
+ query.handle_response(responses[i])
+ end
+ end
+ nil
end
end
# TODO find better ActiveModel hook
ActiveModel::Callbacks.send(:include, Searchkick::Model)