Bonjour à tous, volià je mets en place un moteur de recherche avec le module Zend_Search_Lucene.
Première question : est-il bien adapté pour une recherche dans une base sachant qu'il a la particularité d'indexé lui même le contenu à rechercher...
Autrement j'ai quelques problèmes :
Je souhaite indexé chaque nouvelle entré dans une table où sont enregistrés l'artiste et le nom de son album. (cas très simple pour un exercice).
A chaque nouvelle entrée j'indexe :
Pour la recherche dans l'index j'effectue l'action suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 if ( ! file_exists($this->pathFile) ){ $index = new Zend_Search_Lucene($this->pathFile,true); } else { $index = new Zend_Search_Lucene($this->pathFile); } $doc = new Zend_Search_Lucene_Document(); $doc->addField(Zend_Search_Lucene_Field::UnIndexed('created', time())); $doc->addField(Zend_Search_Lucene_Field::Text('title',$title,$this->_charset)); $doc->addField(Zend_Search_Lucene_Field::Text('artist',$artist,$this->_charset)); $index->addDocument($doc);
Et pour l'affichage une simple boucle pour test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public function rechercherAction() { $index = new Zend_Search_Lucene($this->pathFile); $query = $this->_request->getPost('search_field'); $hits = $index->find($query); $this->view->results=$hits; //echo count($hits); }
Résultat : RIEN, rien ne s'affiche $hits est désespérément vide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 foreach($this->results as $hit) { echo $hit->artist; }
Si vous avez une idée ? ...
Merci de votre aide.
a+ Fred
Partager