From 00d7bdcc2adcc15fe1a95862478cb9b43065a4b0 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Fri, 27 Sep 2019 01:06:08 +0900 Subject: Fix search error when ElasticSearch is enabled but not available (#11954) * Fallback to Database search when ES not available * Prevent double work if ES gives 0 result * Apply suggestion from code review --- app/services/tag_search_service.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'app/services/tag_search_service.rb') diff --git a/app/services/tag_search_service.rb b/app/services/tag_search_service.rb index 64dd76bb7..5cb0eea7a 100644 --- a/app/services/tag_search_service.rb +++ b/app/services/tag_search_service.rb @@ -6,11 +6,10 @@ class TagSearchService < BaseService @offset = options[:offset].to_i @limit = options[:limit].to_i - if Chewy.enabled? - from_elasticsearch - else - from_database - end + results = from_elasticsearch if Chewy.enabled? + results ||= from_database + + results end private @@ -74,6 +73,8 @@ class TagSearchService < BaseService } TagsIndex.query(query).filter(filter).limit(@limit).offset(@offset).objects.compact + rescue Faraday::ConnectionFailed, Parslet::ParseFailed + nil end def from_database -- cgit