IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Index Lucene sur plusieurs tables du modèle [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 155
    Points : 76
    Points
    76
    Par défaut Index Lucene sur plusieurs tables du modèle
    bonjour,

    je voulais essayer, pour une fois, de mettre en place un vrai moteur pour fouiller dans les données de ma base. Pour commencer, j'ai voulu utiliser Zend Lucene en me basant sur le tuto Jobeet.

    Je voudrais commencer en indexant les enregistrements de deux tables Ressource et Evenement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class RessourceTable extends Doctrine_Table
    {
        static public function getLuceneIndex()
        {
            ProjectConfiguration::registerZend();
            if ( file_exists($index = self::getLuceneIndexFile()))
            {
                return Zend_Search_Lucene::open($index);
            }
            else
            {
                return Zend_Search_Lucene::create($index);
            }
        }
     
        static public function getLuceneIndexFile()
        {
            return sfConfig::get('sf_data_dir').'/lucene/ressource.index';
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class EvenementTable extends Doctrine_Table
    {
        static public function getLuceneIndex()
        {
            ProjectConfiguration::registerZend();
            if ( file_exists($index = self::getLuceneIndexFile()))
            {
                return Zend_Search_Lucene::open($index);
            }
            else
            {
                return Zend_Search_Lucene::create($index);
            }
        }
     
        static public function getLuceneIndexFile()
        {
            return sfConfig::get('sf_data_dir').'/lucene/evenement.index';
        }
    Ensuite j'ai créé une tâche pour "réenregistrer" relancer le processus de sauvegarde dans la base, un genre de data-load mais pour des données déjà en base. Je lance la tâche séparément pour chacune de deux tables.

    si je commence par Ressource, j'ai bien un dossier ressource.index qui est créé. Si je teste en faisant une recherche sur Ressource, le résultat est a priori celui que j'attends.

    mais lorsque je relance la tâche sur Evenement, l'index est sauvegardé dans ressource.index au lieu de evenement.index comme indiqué dans EvenementTable... et du coup l'index des Ressource est écrasé...

    Comme se fait-ce ? Ai-je mal procédé, ou comment créer des index pour plusieurs tables du modèle ?

    Merci d'avance pour votre aide et le temps que vous me consacrerez !

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 155
    Points : 76
    Points
    76
    Par défaut
    Mea Culpa,

    le problème vient d'une grosse inattention :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Evenement extends BaseEvenement
    {
           
        public function updateLuceneIndex()
        {
            $index = RessourceTable::getLuceneIndex();
    Forcément ça ne peut que déconner...

  3. #3
    Débutant
    Inscrit en
    Juin 2007
    Messages
    453
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 453
    Points : 97
    Points
    97
    Par défaut
    Bonjour,

    Il me faut faire quelques améliorations à Lucene . Pour le moment je n'est presque aucune idée sur ce projet.

    Pourriez-vous s'il vous plaît me communiquez des tutoriels en Français détaillant ce projet pour pouvoir faire quelques améliorations!


    Bon, d'après mes connaissances Lucene est développé en Java! Y' a-t-il une version en Symfony , si oui est-elle toujours mis à jours !

    Vous me conseillez de faire mes modification en se basant sur quel version (Version Java, Symfony ou autre ). En effet, il sera mieux de faire des modifications sur une version qui a été développé en PHP puisque je veux apporter des modification en se basant sur une ontologie c-a-d des données PHP !

    Merci d'avance. J'attends vos conseils s'il vous plaît

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 155
    Points : 76
    Points
    76
    Par défaut
    Regarde le chapitre sur la recherche dans le tuto Practical Symfony sur le site de la Doc Officielle.

    Bon Courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Indexation de plusieurs tables du modèle avec Lucene
    Par jekif dans le forum Débuter
    Réponses: 0
    Dernier message: 13/03/2012, 23h19
  2. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  3. order by sur plusieurs tables
    Par Mad_Max dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/12/2003, 12h17
  4. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo