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

Outils MySQL Discussion :

Index full text sur champs multiples


Sujet :

Outils MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut Index full text sur champs multiples
    Bonjour et merci de me lire,

    J'ai déjà posté cette question sur un autre forum mais c'était avant de découvrir celui-ci qui m'a l'air particulièrement actif ! Je me permets donc de poser également ma question ici.

    Je développe actuellement un projet personnel (web). Celui-ci aura une partie moteur de recherche.
    Je souhaite laisser le choix aux internautes de faire leur recherche dans la table du contenu sur les champs titre, mots clefs et descriptifs.
    Ils pourront choisir entre 2 types de recherche :
    Soit sur tous les champs (titre, mots clefs, descriptif).
    Soit sur un seul des champs au choix.

    Si je n'avais eu que le 1er type de recherche, il aurait fallu faire un index de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE FULLTEXT INDEX index_recherche
    ON ma_table (titre, motsClefs, descriptif);
    Mais avec le second cas possible, je dois plutôt créer 3 index :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE FULLTEXT INDEX index_titre ON ma_table (titre);
    CREATE FULLTEXT INDEX index_motsClefs ON ma_table (motsClefs);
    CREATE FULLTEXT INDEX index_descriptif ON ma_table (descriptif);
    Question (un peu newbies en index je dois dire) :
    En créant mes 3 index (second cas), mes requêtes faites avec le 1er cas utiliseront-elles les index ?
    Ou dois-je créer un 4ème index ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE FULLTEXT INDEX index_recherche ON ma_table (titre, motsClefs, descriptif);
    Sinon comment dois-je faire ? (créer seulement les 3 index du second cas et lorsque l'internaute fait une recherche du 1er cas, faire 3 requêtes dans une table temporaire + une requête sur les résultats ? Ou un truc comme ça ?)

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Par défaut
    Normalement, tu dois créer les quatre index.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    Bonjour Antoun et merci pour ta réponse.
    C'est ce que j'avais fait dans un premier temps mais phpMyAdmin m'indiquait un message d'avertissement :
    Plus d'un index de type FULLTEXT existe pour la colonne `titre`

    Mais bon, je pense que phpMyAdmin ne doit juste faire qu'un test assez simple pour voir si il existe un doublon et je n'étais pas sûr que ça reflète quoi que ce soit en rapport avec l'optimisation de ma base de données. C'est pour ça que je préférais poser la question et pas me fier simplement à ce message de phpMyAdmin.
    D'ailleurs, je trouvais étrange que ce message ne concerne que la colonne titre alors qu'en motsClefs et descriptif se retrouve aussi dans 2 index en définitive.

    J'ai une autre question (sans doute conne) sur les index mais peut-être serait-il mieux que je fasse un nouveau topic ?
    Je me demandais à quoi sert de nommer ces index ? Lorsqu'on fait une requête avec un clause WHERE, on utilise le nom de la colonne et non le nom de l'index, non ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Par défaut
    Citation Envoyé par manu_71
    Bonjour Antoun et merci pour ta réponse.
    C'est ce que j'avais fait dans un premier temps mais phpMyAdmin m'indiquait un message d'avertissement :
    Plus d'un index de type FULLTEXT existe pour la colonne `titre`
    Comme tu l'as deviné, c'est juste un warning de phpMyAdmin.
    Citation Envoyé par manu_71
    J'ai une autre question (sans doute conne) sur les index mais peut-être serait-il mieux que je fasse un nouveau topic ?
    Je me demandais à quoi sert de nommer ces index ?
    ça permet par exemple de les supprimer...
    Citation Envoyé par manu_71
    Lorsqu'on fait une requête avec un clause WHERE, on utilise le nom de la colonne et non le nom de l'index, non ?
    yep !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    Merci encore.
    Je passe le topic en résolu et je me remets direct sur le développement de mon projet !

    Juste pour info, t'as du te mélanger les pinceaux sur tes quote dans ta dernière réponse. Mais j'ai compris quand même.

    Vraiment cool ! Merci !

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Par défaut
    Citation Envoyé par manu_71
    Juste pour info, t'as du te mélanger les pinceaux sur tes quote dans ta dernière réponse.
    désolé
    c'est corrigé maintenant.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut

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

Discussions similaires

  1. Erreur sur champ text pour un index Full-Text
    Par Steph82 dans le forum Outils
    Réponses: 5
    Dernier message: 06/01/2011, 15h08
  2. Sql serveur 2005 et index full texte
    Par gueguenkevin dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/01/2008, 22h12
  3. Indexation full-text le bon choix ?
    Par Sindel dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 27/12/2007, 13h18
  4. Problème index Full text
    Par fumesec dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 29/09/2007, 10h59
  5. Full-text sur plusieurs tables ?
    Par xender dans le forum Outils
    Réponses: 8
    Dernier message: 26/01/2007, 23h50

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