Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Autres composants
Autres composants Forum de support sur les autres composants de Zend Framework.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/12/2010, 16h00   #1
Membre régulier
 
Inscription : janvier 2004
Messages : 440
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 440
Points : 89
Points : 89
Par défaut Utilisation de Zend_Search_Lucene

Bonjour,

Voilà j'ai une table MySql de CV.
Cette table contient un certain nombre d'information dont le nom du cv en question.

J'aimerai pouvoir faire une recherche fulltext dans ces fichiers.
Je dois donc d'abord pouvoir les indexer, c'est pourquoi j'aimerai utiliser Zend_Search_Lucene.
Les cvs sont au format doc, docx, pdf, txt et jpeg.

1) Pourrai-je le faire avec Zend_Search_Lucene? Et si oui comment?
2) A quel moment mettre en place l'indexation dans mon programme?

Merci d'avance pour votre aide.
sheira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2010, 10h26   #2
Membre régulier
 
Inscription : janvier 2004
Messages : 440
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 440
Points : 89
Points : 89
J'ai bien avancé, j'ai créer un contrôleur permettant de créer l'index et d'effectuer une petite recherche pour voir s'il indexe bien.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 public function fullsearchAction(){
 
 
            $folder = "APPLICATION_PATH."cvtheque";
            $dossier = opendir($folder);
            $filePathDoc=array();
            while ($Fichier = readdir($dossier)) {
 
              if ($Fichier != "." && $Fichier != "..") {
                $nomFichier = $folder."/".$Fichier;
                $extension=strrchr($nomFichier,'.');
                $extension=substr($extension,1);
 
                if(($extension =="docx") || ($extension =="doc"))
                {
                    //echo $nomFichier."<BR>";
                    array_push($filePathDoc,$nomFichier);
                }
              }
            }
            //print_r($filePathDoc);
            closedir($dossier);
 
 
            $indexPath = APPLICATION_PATH."cvtheque/docindex";
            $index = Zend_Search_Lucene::create($indexPath);
            foreach ($filePathDoc as $path) {
                $doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($path);
                $index->addDocument($doc);
            }
            $index->commit();
            $index->optimize();
 
 
            /*** Recherche ***/
 
            $query = new Zend_Search_Lucene_Search_Query_MultiTerm();
            $query->addTerm(new Zend_Search_Lucene_Index_Term('test'), true);
 
            $hits = $index->find($query);
 
            foreach ($hits as $hit) {
 
                //printf("%d %f %s\n", $hit->id, $hit->score, $hit->title);
                echo  $hit->title."<br>";
            }
 
            $numHits = count($hits); // Renvoie le nombre de résultat présent
 
            echo "Résultat:".$numHits;// 
 
       }
Ca fonctionne bien seulement j'aimerai savoir s'il était d'indexer des fichiers word 2003 (.doc) avec Zend_Search_Lucene?

Merci d'avance.
sheira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h14   #3
Membre régulier
 
Inscription : janvier 2004
Messages : 440
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 440
Points : 89
Points : 89
Par défaut Indexer 5000 documents avec Zend_search_lucene

Bonjour,

J'ai plus de 5000 documents a indexer avec Zend_Search_Lucene.
Seulement et bizarrement l'indexation s'arrête au 1600 ème document.

J'ai essayé de contourner le problème à l'aide des méthodes :
setMaxBufferedDocs() et setMergeFactor() sans meilleur résultat.

Voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
               $indexPath = APPLICATION_PATH."/cvtheque/docindex";
 
 
				if (is_dir($indexPath)) {
					$index = Zend_Search_Lucene::open($indexPath);
					$index->optimize();
				}
				else
				{
					$index = Zend_Search_Lucene::create($indexPath);
					$index->optimize();
				}
 
				$num=count($filePathDocx);
				echo $num;
				$i=0;
				$index->setMaxBufferedDocs(100);
				$index->setMergeFactor(100); 
				$index->optimize();
                foreach ($filePathDocx as $pathDocx) {
					$doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($pathDocx);
					$index->addDocument($doc);
 
 
 
 
					$i=$i+1;
					echo $i;
				}
				$indexSize = $index->count();
				echo $indexSize;
Pour info, l' ne s'affiche jamais vu que ma boucle foreach n'atteint jamais le dernier enregistrement.

Merci d'avance pour vos réponse.
sheira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 22h22   #4
Invité régulier
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 7
Points : 7
Bonjour,

Peut être ne s'agit il que d'une action trop longue pour le temps d'exécution définit dans votre php.ini ?
marcovitch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h26.


 
 
 
 
Partenaires

Hébergement Web