Table des matières

Exemple de còde requesta SOLR en php

fichièr bootstrap.php

<?php

/* Nom de domaine du serveur Solr */
define('SOLR_SERVER_HOSTNAME', 'labo.macarel.net');
/* Si l'on doit exécuter en mode sécurisé ou non */
define('SOLR_SECURE', false);
/* Port HTTP de connexion */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));
/* Nom d'utilisateur pour l'authentification HTTP Basic */
define('SOLR_SERVER_USERNAME', 'solr');
/* Mot de passe pour l'authentification HTTP Basic */
define('SOLR_SERVER_PASSWORD', 'secretsecret');
/* Nom de la collection */
define('SOLR_SERVER_COLLECTION', 'multi');
/* Délai maximal de connexion HTTP */
/* C'est la durée maximale en secondes autorisée pour l'opération de transfert de données http. La valeur par défaut est 30 secondes */
define('SOLR_SERVER_TIMEOUT', 10);
/* Nom du fichier de la clé privée formattée PEM + du certificat privé (concaténés dans cet ordre) */
define('SOLR_SSL_CERT', 'certs/combo.pem');
/* Nom du fichier du certificat privé formatté PEM seulement */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');
/* Nom du fichier de la clé privée formattée PEM */
define('SOLR_SSL_KEY', 'certs/solr.key');
/* Mot de passe pour le fichier de la clé privée formattée PEM */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');
/* Nom du fichier contenant un ou plusieurs certificats CA pour l'authentification */
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');
/* Nom du dossier contenant les certificats CA pour l'authentification */
define('SOLR_SSL_CAPATH', 'certs/');
/* Format de sortie du document*/
define('SOLR_OUPUT_FORMAT', 'json');
/* path de la collection ou du core */
define('SOLR_PATH', '/solr/multi');
define('SOLR_MAX_ROW', 99999999);
?>

fichièr main.php

<?php
  include_once "bootstrap.php";
 
  $options = array(
      'hostname' => SOLR_SERVER_HOSTNAME,
      'login'    => SOLR_SERVER_USERNAME,
      'password' => SOLR_SERVER_PASSWORD,
      'port'     => SOLR_SERVER_PORT,
//      'wt'    => SOLR_OUPUT_FORMAT,
      'path' => SOLR_PATH,
  );

  try{
    $client = new SolrClient($options);
  }catch (Exception $e){
    print ("Exception levée. " . $e->getCode() . "\n");
    return;
  }

  $opt = $client->getOptions();
//  print_r($opt);
  $query = new SolrQuery();
  $query->setQuery('pomme');
  $query->setStart(0);
  $query->setRows(SOLR_MAX_ROW);
  $query->addField('definition')
    ->addField('dictionary')
    ->addField('genregram')
    ->addField('term')
    ->addField('term_clean')
    ->addField('weight');
   
  try{
    $query_response = $client->query($query);
  }catch(Exception $e){
    print("Exception levée : " . $e->getCode(). "\n");
    return;
  }

  $response = $query_response->getResponse();
  $numFound = $response['response']['numFound'];
  print ("# trouvés $numFound\n");
  $docs = $response['response']['docs'];

  foreach ($docs as $solrObj){
    $dictionary = $solrObj['dictionary'][0];
    $term = $solrObj['term'];
    $term_clean = $solrObj['term_clean'];
    $genregram = $solrObj['genregram'][0];
    $weight = $solrObj['weight'];
    $definition = $solrObj['definition'][0];
    print ("dictionary : $dictionary, term : $term, term_clean : $term_clean, genregram : $genregram, weight : $weight\ndefinition : $definition\n");
  } // foreach

//  print_r($response);
?>