calitom
2010-08-25 04:26:42 UTC
Bonjour,
Je viens d'installer l'extension Solr qui autorise la communication
avec le serveur Apache Solr en PHP 5.
Je souhaiterais ajouter une fonction qui renvoi le nombre de résultat
de la requête...
Voici un exemple :
<?php
include "bootstrap.php";
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setQuery('lucene');
$query->setStart(0);
$query->setRows(50);
$query->addField('cat')->addField('features')->addField('id')-
$response = $query_response->getResponse();
print_r($response);
?>
Et le résultat du print_r :
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
[params] => SolrObject Object
(
[wt] => xml
[rows] => 50
[start] => 0
[indent] => on
[q] => lucene
[fl] => cat,features,id,timestamp
[version] => 2.2
)
)
[response] => SolrObject Object
(
[numFound] => 3
[start] => 0
[docs] => Array
(
[0] => SolrObject Object
(
[cat] => Array
(
[0] => Software
[1] => Lucene
)
[id] => 334456
)
[1] => SolrObject Object
(
[cat] => Array
(
[0] => Software
[1] => Lucene
)
[id] => 334455
)
[2] => SolrObject Object
(
[cat] => Array
(
[0] => software
[1] => search
)
[features] => Array
(
[0] => Advanced Full-Text Search
Capabilities using Lucene
[1] => Optimized for High Volume
Web Traffic
[2] => Standards Based Open
Interfaces - XML and HTTP
[3] => Comprehensive HTML
Administration Interfaces
[4] => Scalability - Efficient
Replication to other Solr Search Servers
[5] => Flexible and Adaptable with
XML configuration and Schema
[6] => Good unicode support: héllo
(hello with an accent over the e)
)
[id] => SOLR1000
[timestamp] => 2009-09-04T20:38:55.906
)
)
)
)
En fait ce que je voudrais c'est que la fonction me retourne la valeur
de Response->NumFound (Cf tableau résultat ci-dessus)
Comme je ne maitrise pas du tout l'objet, j'aurais voulu avoir un coup
de main sur comment créer une classe qui serve en quelque sorte
d'interface pour l'extension solr.
Je souhaiterais écrire des fonctions qui me permettent de récupérer
des infos sur les résultats car l'extension renvoi les résultats sous
une forme brute...
En gros est ce que je dois créer une classe ? En étendre une
autre ?...
J'aimerais avoir quelques conseils...
Voici le lien vers l'extension solr : http://www.php.net/manual/fr/book.solr.php
Merci d'avance.
Cordialement
Thomas
Je viens d'installer l'extension Solr qui autorise la communication
avec le serveur Apache Solr en PHP 5.
Je souhaiterais ajouter une fonction qui renvoi le nombre de résultat
de la requête...
Voici un exemple :
<?php
include "bootstrap.php";
$options = array
(
'hostname' => SOLR_SERVER_HOSTNAME,
'login' => SOLR_SERVER_USERNAME,
'password' => SOLR_SERVER_PASSWORD,
'port' => SOLR_SERVER_PORT,
);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setQuery('lucene');
$query->setStart(0);
$query->setRows(50);
$query->addField('cat')->addField('features')->addField('id')-
addField('timestamp');
$query_response = $client->query($query);$response = $query_response->getResponse();
print_r($response);
?>
Et le résultat du print_r :
SolrObject Object
(
[responseHeader] => SolrObject Object
(
[status] => 0
[QTime] => 1
[params] => SolrObject Object
(
[wt] => xml
[rows] => 50
[start] => 0
[indent] => on
[q] => lucene
[fl] => cat,features,id,timestamp
[version] => 2.2
)
)
[response] => SolrObject Object
(
[numFound] => 3
[start] => 0
[docs] => Array
(
[0] => SolrObject Object
(
[cat] => Array
(
[0] => Software
[1] => Lucene
)
[id] => 334456
)
[1] => SolrObject Object
(
[cat] => Array
(
[0] => Software
[1] => Lucene
)
[id] => 334455
)
[2] => SolrObject Object
(
[cat] => Array
(
[0] => software
[1] => search
)
[features] => Array
(
[0] => Advanced Full-Text Search
Capabilities using Lucene
[1] => Optimized for High Volume
Web Traffic
[2] => Standards Based Open
Interfaces - XML and HTTP
[3] => Comprehensive HTML
Administration Interfaces
[4] => Scalability - Efficient
Replication to other Solr Search Servers
[5] => Flexible and Adaptable with
XML configuration and Schema
[6] => Good unicode support: héllo
(hello with an accent over the e)
)
[id] => SOLR1000
[timestamp] => 2009-09-04T20:38:55.906
)
)
)
)
En fait ce que je voudrais c'est que la fonction me retourne la valeur
de Response->NumFound (Cf tableau résultat ci-dessus)
Comme je ne maitrise pas du tout l'objet, j'aurais voulu avoir un coup
de main sur comment créer une classe qui serve en quelque sorte
d'interface pour l'extension solr.
Je souhaiterais écrire des fonctions qui me permettent de récupérer
des infos sur les résultats car l'extension renvoi les résultats sous
une forme brute...
En gros est ce que je dois créer une classe ? En étendre une
autre ?...
J'aimerais avoir quelques conseils...
Voici le lien vers l'extension solr : http://www.php.net/manual/fr/book.solr.php
Merci d'avance.
Cordialement
Thomas