From c8f8f8909759b8c164586790f449d382ecf4ccbb Mon Sep 17 00:00:00 2001 From: Demian Katz <demian.katz@villanova.edu> Date: Mon, 27 Aug 2012 10:03:05 -0400 Subject: [PATCH] Better error handling in authority recommendation module. --- .../VuFind/Recommend/AuthorityRecommend.php | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/module/VuFind/src/VuFind/Recommend/AuthorityRecommend.php b/module/VuFind/src/VuFind/Recommend/AuthorityRecommend.php index 5e576a821fa..65e39e52aba 100644 --- a/module/VuFind/src/VuFind/Recommend/AuthorityRecommend.php +++ b/module/VuFind/src/VuFind/Recommend/AuthorityRecommend.php @@ -29,7 +29,8 @@ * @link http://www.vufind.org Main Page */ namespace VuFind\Recommend; -use VuFind\Search\SolrAuth\Params as SolrAuthParams, +use VuFind\Exception\Solr as SolrException, + VuFind\Search\SolrAuth\Params as SolrAuthParams, VuFind\Search\SolrAuth\Results as SolrAuthResults, Zend\Http\Request, Zend\StdLib\Parameters; @@ -128,17 +129,23 @@ class AuthorityRecommend implements RecommendInterface ) ); - // Initialise and process search: - $authParams = new SolrAuthParams(); - $authParams->initFromRequest($request); - foreach ($this->filters as $filter) { - $authParams->addHiddenFilter($filter); + // Initialise and process search (ignore Solr errors -- no reason to fail + // just because search syntax is not compatible with Authority core): + try { + $authParams = new SolrAuthParams(); + $authParams->initFromRequest($request); + foreach ($this->filters as $filter) { + $authParams->addHiddenFilter($filter); + } + $authResults = new SolrAuthResults($authParams); + $results = $authResults->getResults(); + } catch (SolrException $e) { + return; } - $authResults = new SolrAuthResults($authParams); // loop through records and assign id and headings to separate arrays defined // above - foreach ($authResults->getResults() as $result) { + foreach ($results as $result) { // Extract relevant details: $recordArray = array( 'id' => $result->getUniqueID(), -- GitLab