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:

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++;
        }
}
Merci d'avance