繁体   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