簡體   English   中英

處理來自Blacklight的Solr錯誤消息

[英]Handle Solr error messages from Blacklight

每當Solr由於某種原因而無法執行查詢時,它都會返回錯誤消息和錯誤代碼。 我想在Blacklight中處理此類錯誤。 現在,當從Solr收到錯誤時,用戶會收到500內部錯誤。 作為開發人員,我可以看到發生的是RSolr::Error::Http in CatalogController#indexRSolr::Error::Http in CatalogController#index下面的代碼行是問題的根源:

res = blacklight_solr.send_and_receive(path, :params=>solr_params)

是否可以自定義錯誤處理,以便至少可以向用戶顯示指示性錯誤消息,而不是無益的500內部錯誤?

打開文件lib\\blacklight\\catalog.rb 函數rsolr_request_error(exception)負責處理Solr錯誤。 exception參數是RSolr::RequestError ,它表示來自Solr的錯誤。 為了通過顯示來自Solr的消息來處理錯誤,只需在else內添加以下else

error_status = eval(exception.response[:body])['error']
if !error_status.nil? and !error_status['msg'].nil?
    flash_notice = error_status['msg']
else
    flash_notice = I18n.t('blacklight.search.errors.request_error')
end

如果您希望顯示其他消息,請向flash_notice分配其他消息。 如果您希望以不同的方式處理錯誤,那么可以在這里進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM