Tout le monde me guidera pour mettre en évidence les résultats de recherche Solr. J'utilise DomDocument pour analyser les résultats XML.Comment mettre en évidence les résultats de recherche avec Apache SOLR avec le code PHP
Ici, j'ai l'exemple de document ci-dessous.
<add><doc>
<field name="id">1</field><field name="title">Leason1</field>
<field name="description">XYZ</field>
</doc></add>
Je reçois les résultats de recherche en utilisant la fonction ci-dessous,
function solrQuery($q){
$query = "?q=".trim(urlencode($q)).
"&version=2.2&start=0&rows=10&indent=on&hl=true&hl.fl=title";
if($q != '')
return $results = request("", "select".$query);
return 0;
}
....
Dans ma page de résultat je ve afficher les données comme ci-dessous,
$results = solrQuery($query);
if($results != ''){
$results = explode('<?xml version="1.0" encoding="UTF-8"?>', $results);
$results = $results[1];
$dom = new DomDocument;
$dom->loadXML($results);
$docs = $dom->getElementsByTagName('doc');
foreach ($docs as $doc) {
$strings = $doc->getElementsByTagName('str');
foreach($strings as $str){
$attr = $str->getAttribute('name');
$data = $str->textContent;
switch($attr){
case 'id':
$id = $data;
break;
case 'title':
$title = $data;
break;
case 'description':
$description = $data;
break;
}
}
Voici le code que j'obtiens confusion comment surligner les résultats de recherche. Pouvez-vous m'aider pour ça?
J'ai utilisé la fonctionnalité de mise en surbrillance dans ma fonction SolrQuery(). Voir $ query = "? Q =". Trim (urlencode ($ q)). "& version = 2.2 & start = 0 & lignes = 10 & indent = sur & hl = true & hl.fl = titre"; La question est comment implémenter dans mon code php? – prabu
Il y a un exemple qui utilise SimpleXML au bas de ma réponse. – netcoder