lib/searchkick/multi_search.rb in searchkick-3.0.1 vs lib/searchkick/multi_search.rb in searchkick-3.0.2

- old
+ new

@@ -12,27 +12,27 @@ end end private - def perform_search(queries) - responses = client.msearch(body: queries.flat_map { |q| [q.params.except(:body), q.body] })["responses"] + def perform_search(search_queries, perform_retry: true) + responses = client.msearch(body: search_queries.flat_map { |q| [q.params.except(:body), q.body] })["responses"] retry_queries = [] - queries.each_with_index do |query, i| - if query.retry_misspellings?(responses[i]) + search_queries.each_with_index do |query, i| + if perform_retry && query.retry_misspellings?(responses[i]) query.send(:prepare) # okay, since we don't want to expose this method outside Searchkick retry_queries << query else query.handle_response(responses[i]) end end if retry_queries.any? - perform_search(retry_queries) + perform_search(retry_queries, perform_retry: false) end - queries + search_queries end def client Searchkick.client end