Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-06-2009 15:16:12

Vladkergan
Nouveau membre
Date d'inscription: 18-06-2009
Messages: 2

Allowed memory size exhausted & Zend_Search_Lucene

Bonjour,

Sur le site d'un client nous avons mis en place Zend_Search_Lucene. Les contenus à indexer représentent actuellement 1500 enregistrements (de nouvelles entrées sont ajoutées chaque semaine).

Le batch qui gère l'index Lucene a cette tête là ;

Code:

function sanitize($input) 
{
    return utf8_decode( $input ) ;
    //return htmlentities( $input );
}

$index = new Zend_Search_Lucene(PATH_VAR . 'lucene/siteIndex', true);

//get all indexable contents id DB
$searchableContents = SiteTree::fetchSearchableSiteTreeEntries();
$counter = 0;

//parsing results of query
foreach ($searchableContents as $content) 
{ 

    if ($counter == 50)
    {
        $index->commit();
        $index = new Zend_Search_Lucene(PATH_VAR . 'lucene/siteIndex', true);
        $counter = 0;
    }
    if ( Lang::getLocaleById( $content->languageId ) != 'ar' ) 
    {
        $doc = new Zend_Search_Lucene_Document();       
        $doc->addField(Zend_Search_Lucene_Field::Text('title', sanitize($content->htmlTitle)));
        $doc->addField(Zend_Search_Lucene_Field::Text('intro', sanitize($content->htmlIntro)));
        $doc->addField(Zend_Search_Lucene_Field::Text('tags', sanitize($content->tags)));
        $doc->addField(Zend_Search_Lucene_Field::Text('language', Lang::getLocaleById( $content->languageId )));
        $doc->addField(Zend_Search_Lucene_Field::Text('keywords', sanitize($content->metaKey)));
        $doc->addField(Zend_Search_Lucene_Field::UnIndexed('siteTreeId',$content->id));
        $doc->addField(Zend_Search_Lucene_Field::Unstored('content', sanitize($content->htmlContent)));
    }
    $counter ++;
}
$index->commit();
$index->optimize();

Tous les 50 documents, je réinitialise l'objet Zend_Search_Lucene. mais j'ai toujours ce souci de mémoire au bout d'un moment :

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 81 bytes) in /home/website/web/www/library/Zend/Search/Lucene/Analysis/TokenFilter/LowerCase.php on line 47

Des idées ?

D'avance merci

Hors ligne

 

#2 23-09-2009 07:58:16

herman
Membre
Date d'inscription: 26-08-2009
Messages: 10

Re: Allowed memory size exhausted & Zend_Search_Lucene

j'a eu se problème et pour y remédier j'ai du augmenter la taille limite qu'un script peut utiliser dans le fichier de configuration php.ini dans la section "ressource limits"

Hors ligne

 

#3 23-09-2009 10:18:40

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Allowed memory size exhausted & Zend_Search_Lucene

Allowed memory size of 16777216

Ce message veut dire que tu as 16Mo maximum par script. Si tu as une version raisonnablement récente de PHP (5.2 ou plus), la mémoire par défaut est de 128Mo. 16Mo ça me paraît très peu (même pour des pages standard).

Pour faire ton indexation, tu peux ajouter au début de ton script

Code:

ini_set("memory_limit","400M");

Ca autorisera ton script à consommer 400Mo pour mener ton indexation. Je te déconseille de le configurer dans ton php.ini, parce que ça voudrait dire que toutes tes pages peuvent consommer cette mémoire, ce qui n'est pas souhaitable (cela dit, ça résoudrait le problème smile )

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 07-10-2009 21:43:53

probitaille
Membre
Lieu: Montréal
Date d'inscription: 20-04-2009
Messages: 336
Site web

Re: Allowed memory size exhausted & Zend_Search_Lucene

Les fois où j'ai eu cette erreur c'est parce que j'ai fait un erreur dans le code de ma recherche ou code SQL ce qui faisait exécuter un script qui en demandait trop souvent du par des résultats répété à l'infini

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages