Bonjour a tous,
J'ai mis en place un mini moteur de recherche dans mon site via Zend_Lucene.
J'ai trouver comment booster un champ indéxé, mais il me reste une petite question:
J'ai un champ "nombre de vue" que j'indexe ai un impact sur la pertinence des résultats.
Voici mon code d'indexation (lancé par un cron toutes les nuit)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 foreach($list as $item) { $doc = new Zend_Search_Lucene_Document(); $doc->addField(Zend_Search_Lucene_Field::Text('id',$item->id)); $f = Zend_Search_Lucene_Field::Text('name',$item->name); $f->boost=2; $doc->addField($f); $doc->addField(Zend_Search_Lucene_Field::Text('desc',$item->desc)); $doc->addField(Zend_Search_Lucene_Field::Text('tags',$item->tags)); $doc->addField(Zend_Search_Lucene_Field::Text('nbview',$item->nbview)); echo "Adding: ". $item->name ."\n"; $index->addDocument($doc); } $index->commit();
Et mon code de recherche:
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $query =$_GET['query']; $results = $index->find($query); if($index->count()) { $count = 0; foreach ($results as $result) { $data[$count]["id"] = $result->id; $data[$count]["name"] = $result->name; $data[$count]["desc"] = $result->desc; $data[$count]["nbview"] = $result->nbview; $data[$count]["tags"] = $result->tags; $count++; } }
Partager