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 :

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);
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
 
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);		
}
Et pour l'affichage une simple boucle pour test :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
foreach($this->results as $hit) {
	echo $hit->artist;
}
Résultat : RIEN, rien ne s'affiche $hits est désespérément vide !
Si vous avez une idée ? ...

Merci de votre aide.

a+ Fred