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

PHP & Base de données Discussion :

Moteur de recherche avec MySQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 74
    Par défaut Moteur de recherche avec MySQL
    Bonjour,

    Je souhaite faire un moteur de recherche. J'ai 3 tables : textes, mots et mots_textes.

    La table textes contient tout les textes sur lesquels portera la recherche.
    La table mots contient la liste des mots qui peuvent être utilisé pour effectuer la recherche.

    Et la table mots_textes est la table qui indique dans quels textes se trouve tels mots.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    textes :
     
    id | texte
    ----------
     1 | Une voiture roule sur un pont
     2 | Un piéton marche sur un pont
     3 | La voiture est rouge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mots :
     
    id | mot
    --------
     1 | voiture
     2 | roule
     3 | pont
     4 | piéton
     5 | marche
     6 | rouge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    mots_textes :
     
    mot | texte
    -----------
      1 | 1
      1 | 3
      2 | 1
      3 | 1
      3 | 2
      4 | 2
      5 | 2
      6 | 3
    A partir de là, j'aimerais faire une requête SQL qui me récupère la liste des textes qui contiennent la totalité des mots recherchés. Plus il y a de mots recherchés, moins il y a de résultats.

    Par exemple, pour le mot "voiture", le résultat est 1 et 3 (les textes 1 et 3).
    Pour les mots "voiture" et "rouge", le résultat est 3.
    Pour le mot "pont", le résultat est 1 et 2.
    Pour les mots "pont" et "marche", le résultat est 2.

    Pouvez vois m'aider à faire la requête qui permet de récupérer, par exemple, la liste des textes qui contiennent "voiture" et "roule" ?

    La requête doit pouvoir être exécuté par MySQL.

    Merci.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 322
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 322
    Billets dans le blog
    17
    Par défaut
    Utilise un index FULLTEXT, il gèrera tout cela automatiquement.
    http://dev.mysql.com/doc/refman/5.1/...xt-search.html

  3. #3
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT t.* FROM
    textes t, mots m, mots_textes mt
    WHERE m.id = mt.mot
    AND t.id = mt.texte
    Si tu fais un moteur de recherche, pense à regarder du coté des soundex.

    Gillou.

Discussions similaires

  1. Moteur de recherche avec jsp et mysql
    Par rane dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/05/2009, 14h14
  2. Moteur de recherche avec MySQL
    Par Davidlouiz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/10/2008, 23h23
  3. moteur de recherche avec requete sql
    Par hottnikks_79 dans le forum ASP
    Réponses: 4
    Dernier message: 03/08/2006, 03h58
  4. Réponses: 6
    Dernier message: 04/11/2005, 17h09

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