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);
?>