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 :

Lucene Fonction Find()


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut Lucene Fonction Find()
    Bonjour j'ai un problème avec mon moteur de recherche.
    Pour rechercher je fais comme ceci :
    $hits = $this->getLuceneIndex()->find($query);

    Si mon contenu est 'lol' et que je recherche 'lol' il va le trouver.
    Mais si mon contenu est 'Hello world' et que je recherche 'Hello world' il ne va rien trouver du tout!.
    Bref de plus j'aimerai bien que lorsque mon objet est une longue phrase du type
    'Salut je suis un kevin' et si je recherche juste 'Kevin' et bien qu'il trouve!!
    Comment faire??

    merci

  2. #2
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    Je te propose autre chose

    Un champ d'autocomplétion avec requête ajax derrière qui va te retourner une ou plusieurs proposition. Je te met ci-dessous un exemple d'utilisation :

    Dans le template editSucess.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php echo input_auto_complete_tag( 'ctms_user_title', $cur_user->getCtmsUserTitle(),
                                        'users/autocomplete_title',
                                        array('autocomplete' => 'on'),
                                        array('use_style'    => true)
                                    );
    ?>
    =>Lorsque l'utilisateur saisi un caractère dans le champ, une requête ajax est lancé faisant appel à l'action autocomplete_title qui va nous retourner les solutions et les faire apparaitre juste en dessous du champ.

    Dans l'action action.class.php :

    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
    20
    class usersActions extends sfActions
    {
      public function executeIndex($request)
      {
      }
     
      public function executeAutocomplete_title($request)
      {
        $title = $request->getParameter('ctms_user_title');
        $c = new Criteria();
        $c->add(CtmsUserTitlePeer::NAME, '%'.$title.'%', Criteria::LIKE);
        $c->addAscendingOrderByColumn(CtmsUserTitlePeer::NAME);
        $titles = CtmsUserTitlePeer::doSelect($c);
        $ret = '<ul>';
        foreach ($titles as $t)
            $ret .= '<li>'.$t->getName().'</li>';
        $ret .= '</ul>';
        return $this->renderText($ret);
      }
    }
    => Dans l'action je fait tout simplement une requete SQL avec un LIKE, qui nous retournera la(les) solution(s) sous un rendu HTML

    Voilà, j'espère que ça t'aidera

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut re
    merci pour ton aide mê si ce n'est pas vraiment ce que je recherche^^!

  4. #4
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    Beh pkoi c'est pas trop ce que tu recherche ? :/

    Pour ton moteur de recherche, tes données elles sont stockées où ? :o

    Si elles sont en BDD, als ma solution peut s'appliquer. Il suffit alors de créer un nouveau fichier d'action avec son template où sera afficher les solutions.

    Soit c'est moi qui est pas compris, soit ... ^^

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut re
    Oui mes données sont stockés dans la bdd.
    Mais moi par exemple ce n'est pas des petits mots à auto complété, c'est des phrases entières donc bon ...

    Ta technique est bien si tu recherches par exemple un titre de livre ou un auteur car c'est court mais dans mon cas cela ne va pas.
    Merci tout de même

  6. #6
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    Ce que tu cherche en faite c'est à partir de quelques mots clés saisis retrouvés la phrase correspondante ?
    Dans mon cas, cela fonctionne même avec des phrases si on le souhaite seulement il faut que ce que l'on saisisse dans le champ correspondant exactement une partie de la phrase et non pas quelques mots présent dans celle-ci..

    Ton cas correspond auquel ? :o

Discussions similaires

  1. Utilisation de la fonction find
    Par ylabarre dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 29/08/2007, 16h02
  2. [C++ .NET] Comment utiliser fonction Find ?
    Par thecrax dans le forum Framework .NET
    Réponses: 3
    Dernier message: 17/08/2006, 09h02
  3. [VBA-E]Problème avec la fonction Find
    Par Mirx1 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 27/04/2006, 18h43
  4. [VBA-E]Fonction .find
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/01/2006, 11h03
  5. [VBA-E] Fonction "FIND"
    Par cinc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/09/2005, 11h16

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