Changeset 1487


Ignore:
Timestamp:
Sep 29, 2010, 12:49:06 AM (10 years ago)
Author:
teymour
Message:

Gestion du moteur de recherche indisponible

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpc/trunk/project/apps/frontend/modules/solr/actions/actions.class.php

    r1486 r1487  
    6666    }
    6767    //Récupère les résultats auprès de SolR
    68     $s = new SolrConnector();
    6968    $params = array('hl'=>'true', 'fl' => 'id,object_id,object_name,date', 'hl.fragsize'=>500, "facet"=>"true", "facet.field"=>array("object_name","tag"), "facet.date" => "date", "facet.date.start"=>"2007-05-01T00:00:00Z", "facet.date.end"=>"NOW", "facet.date.gap"=>"+1MONTH", 'fq' => $fq);
    7069    $this->sort_type = 'pertinence';
     
    145144    $this->end = $params['facet.date.end'];
    146145    $this->interval = $params['facet.date.gap'];
    147    
    148     $results = $s->search($query, $params, $deb, $nb);
     146
     147    try {
     148      $s = new SolrConnector();
     149      $results = $s->search($query, $params, $deb, $nb);
     150    }catch(Exception $e) {
     151      $results = array('response' => array('docs' => array(), 'numFound' => 0));
     152      $this->getUser()->setFlash('error', 'Désolé, le moteur de recherche est indisponible pour le moment');
     153    }
    149154    //Reconstitut les résultats
    150155    $this->results = $results['response'];
     
    177182    $this->facet['parlementaire']['name'] = 'Parlementaire';
    178183
    179     $this->facet['type']['prefix'] = '';
    180     $this->facet['type']['facet_field'] = 'object_name';
    181     $this->facet['type']['name'] = 'Types';
    182     $this->facet['type']['values'] = $results['facet_counts']['facet_fields']['object_name'];
    183 
    184     $tags = $results['facet_counts']['facet_fields']['tag'];
    185     $this->facet['tag']['prefix'] = '';
    186     $this->facet['tag']['facet_field'] = 'tag';
    187     $this->facet['tag']['name'] = 'Tags';
    188     foreach($tags as $tag => $nb ) {
    189       if (!$nb)
    190         continue;
    191       if (!preg_match('/=/', $tag))
    192         $this->facet['tag']['values'][$tag] = $nb;
    193       if (preg_match('/^parlementaire=(.*)/', $tag, $matches)) {
    194         $this->facet['parlementaire']['values'][$matches[1]] = $nb;
     184    if (isset($results['facet_counts'])) {
     185      $this->facet['type']['prefix'] = '';
     186      $this->facet['type']['facet_field'] = 'object_name';
     187      $this->facet['type']['name'] = 'Types';
     188      $this->facet['type']['values'] = $results['facet_counts']['facet_fields']['object_name'];
     189     
     190      $tags = $results['facet_counts']['facet_fields']['tag'];
     191      $this->facet['tag']['prefix'] = '';
     192      $this->facet['tag']['facet_field'] = 'tag';
     193      $this->facet['tag']['name'] = 'Tags';
     194      foreach($tags as $tag => $nb ) {
     195        if (!$nb)
     196          continue;
     197        if (!preg_match('/=/', $tag))
     198          $this->facet['tag']['values'][$tag] = $nb;
     199        if (preg_match('/^parlementaire=(.*)/', $tag, $matches)) {
     200          $this->facet['parlementaire']['values'][$matches[1]] = $nb;
     201        }
    195202      }
    196203    }
Note: See TracChangeset for help on using the changeset viewer.