Commit 5a387e9f5a4d278641cce23ff3e996f07792a753

Authored by Andrew Kane
1 parent 75fae6a5
Exists in master

Fixed search timeout not applying to multi_search - #1593

Showing 2 changed files with 7 additions and 1 deletions   Show diff stats
CHANGELOG.md
1 1 ## 5.1.0 (unreleased)
2 2  
3 3 - Fixed search timeout with `elasticsearch` 8+ and `opensearch-ruby` gems
  4 +- Fixed search timeout not applying to `multi_search`
4 5  
5 6 ## 5.0.5 (2022-10-09)
6 7  
... ...
lib/searchkick/middleware.rb
... ... @@ -3,8 +3,13 @@ require "faraday"
3 3 module Searchkick
4 4 class Middleware < Faraday::Middleware
5 5 def call(env)
6   - if env[:url].path.to_s.end_with?("/_search")
  6 + path = env[:url].path.to_s
  7 + if path.end_with?("/_search")
7 8 env[:request][:timeout] = Searchkick.search_timeout
  9 + elsif path.end_with?("/_msearch")
  10 + # assume no concurrent searches for timeout for now
  11 + searches = env[:request_body].count("\n") / 2
  12 + env[:request][:timeout] = Searchkick.search_timeout * searches
8 13 end
9 14 @app.call(env)
10 15 end
... ...