Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-07-2011 11:09:40

fingerprint
Nouveau membre
Date d'inscription: 28-07-2011
Messages: 1

[Zend_Search_Lucene][1.11.9] Ajout à l'index ineffectif

Bonjour,

j'utilise ZSL pour indexer des adresses.
function indexeAdresseSite($objAdresseSite) {
    $index = Zend_Search_Lucene::open(INDEXDIR_ADRESSE_SITE);
    // (1) on supprime d'abord les documents déjà présents pour cette adresse
    $term = new Zend_Search_Lucene_Index_Term($objAdresseSite->IdAdresse, 'document_id');
    $terms = $index->termDocs($term);
    foreach ($terms as $id) {
        if (!$index->isDeleted($id)) {
            $index->delete($id);
        }
    }

    // (2) on ajoute le nouveau document
    self::addAdresseSite($index, $objAdresseSite);

    // (3) on commit
    $index->commit();
}

Jusqu'à présent, tout allait bien.
Or, depuis quelque temps, les documents ne s'ajoutent plus.
J'ai donc placé des traces pour voir ce qui se passait.
* la recherche en (1) trouve deux documents (id=2323 et 2849), marqués comme supprimés dans l'index
* si je reexécute la recherche à la fin, après le commit, sur le même objet $index :
    $index->commit();
    $term = new Zend_Search_Lucene_Index_Term($objAdresseSite->IdAdresse, 'document_id');
    $terms = $index->termDocs($term);
il me trouve 3 entrées : 2323 et 2849, toujours supprimées, et une nouvelle entrée 3034

* si je reexécute la recherche après le commit, mais en réouvrant l'index :
    $index->commit();
    $index = Zend_Search_Lucene::open(INDEXDIR_ADRESSE_SITE);
    $term = new Zend_Search_Lucene_Index_Term($objAdresseSite->IdAdresse, 'document_id');
    $terms = $index->termDocs($term);

il ne me trouve plus que les 2 entrées 2323 et 2849, toujours supprimées.
Comme si le commit n'écrivait pas dans les fichiers.

Si je fais le test sur un document qui n'est pas supprimé dans l'index, il passe par les mêmes étapes, mais il a bien supprimé (et en réouvrant l'index l'entrée est bien supprimée, donc le commit a bien écrit !)

Jusqu'à présent tout allait bien, et je n'ai pas modifié le code.
La seule opération récente, c'est que j'ai relancé une réindexation globale par script (après la recréation de l'index j'appelle le code ci-dessus pour chacune des adresses); l'appel est fait en ligne de commande (et non via un navigateur), mais avec le même utilisateur que lorsque ça passe par Apache. Réindexation que j'ai faite plusieurs fois sans jamais avoir de problème.

Mon analyse personnelle (d'après ce que j'ai compris du fonctionnement de ZSL), c'est qu'il ne doit pas arriver à créer un nouveau segment.



Sachant cela, quelqu'un a-t-il :
- une idée sur ce qui peut se passer ?
- des tests à faire ?
- un endroit plus approprié où poser la question, pour régler le problème au plus vite (évidemment, le problème se pose sur un site en prod d'un client tatillon...) ?

Merci d'avance.

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