La recherche sur texte entier n'a malheureusement pas encore beaucoup de paramètres modifiables par l'utilisateur, même si l'ajout de certains apparaît très haut dans la liste de tâches. Si vous utilisez MySQL depuis les sources (See Section 2.4, « Installation de MySQL avec une distribution source ».), vous pouvez mieux contrôler le fonctionnement de la recherche sur texte entier.
La recherche sur texte entier a été paramétrée pour une efficacité de recherche maximale. La modification du comportement par défaut ne fera généralement que diminuer la qualité des résultats des recherches. Il ne faut pas modifier les sources de MySQL sans savoir précisément ce qu'on fait.
            La taille minimale des mots à indexer est définie dans la
            variable ft_min_word_len de MySQL. See
            Section 13.5.3.18, « Syntaxe de SHOW VARIABLES ». Vous pouvez modifier cette
            valeur pour celle que vous préférez, puis reconstruire les
            index FULLTEXT. (Cette variable n'existe
            que pour la version 4.0 de MySQL) La valeur par défaut de
            cette option est de 4 caractères. Modifiez la, puis
            recompilez les index FULLTEXT. Par
            exemple, si vous souhaitez pouvoir rechercher des mots de 3
            caractères, vous pouvez donner à cette variable la valeur
            suivante dans le fichier d'options :
          
[mysqld] ft_min_word_len=3
            Puis, relancez le serveur et recompilez vos index
            FULLTEXT.
          
            La liste des mots rejetés est définie dans la variable
            ft_stopword_file. See
            Section 13.5.3.18, « Syntaxe de SHOW VARIABLES ». Modifiez le selon vos
            goûts, reconstruisez vos index FULLTEXT.
          
            Le taux de 50% est déterminé par la méthode de
            pondération choisie. Pour le désactiver, il faut changer
            la ligne suivante dans
            myisam/ftdefs.h :
          
#define GWS_IN_USE GWS_PROB
Par la ligne:
#define GWS_IN_USE GWS_FREQ
            Puis recompiler MySQL. Il n'est pas nécessaire de
            reconstruire les index dans ce cas.
            Note : en faisant ces
            modifications, vous diminuez
            énormément les capacités de MySQL à
            fournir des valeurs pertinentes pour la fonction
            MATCH(). Si vous avez réellement besoin
            de faire des recherches avec ces mots courants, il est
            préférable de rechercher EN MODE
            BOOLEEN, lequel ne respecte pas le taux de 50%.
          
            Pour changer les opérateurs utilisés pour les recherches
            booléennes, modifiez la variable système
            ft_boolean_syntax (disponible depuis
            MySQL 4.0.1). La variable peut aussi être modifiée durant
            le fonctionnement du serveur, mais vous devez avoir les
            droits de SUPER. La recompilation des
            index n'est pas possible.
            Section 5.2.3, « Variables serveur système » décrit les
            règles de définition de cette variable.
          
        Si vous modifiez des variables d'indexation de textes qui
        affectent les index (les variables
        (ft_min_word_len,
        ft_max_word_len et
        ft_stopword_file), vous devez reconstruire
        les index FULLTEXT après avoir faire les
        modifications et relancé le serveur. Pour reconstruire les
        index, il est suffisant de faire une réparation
        QUICK :
      
mysql> REPAIR TABLE tbl_name QUICK;
        Si vous utilisez spécifiquement les fonctionnalités
        IN BOOLEAN MODE, si vous mettez à jour
        depuis MySQL 3.23 vers 4.0 ou plus récent, il est nécessaire
        de remplacer aussi les entêtes des index. Pour cela, utilisez
        l'opération de réparation USE_FRM :
      
mysql> REPAIR TABLE nom_de_table USE_FRM;
        C'est nécessaire, car les recherches booléennes en texte plein
        requièrent une option dans l'entête qui n'était pas présente
        en MySQL en version 3.23, et elle n'est pas ajoutée si vous
        faites une réparation de type QUICK. Si vous
        tentez une recherche booléenne sans reconstruire l'index comme
        ceci, la recherche retournera des résultats incorrects.
      
        Notez que si vous utilisez myisamchk pour
        effectuer une opération qui modifie les index de la table, pour
        une réparation ou une analyse, les index
        FULLTEXT sont reconstruits en utilisant la
        configuration par défaut des index en texte plein, à moins que
        vous ne les spécifiez autrement. Cela peut conduire à des
        requêtes qui échouent.
      
        Le problème survient car les valeurs de cette configuration
        n'est connue que du serveur. Elles ne sont pas stockées dans
        les fichiers d'index MyISAM. Pour éviter ce
        problème si vous avez modifié la taille minimale ou maximale
        des mots, ou encore le fichier de mots interdits, spécifiez les
        options ft_min_word_len,
        ft_max_word_len et
        ft_stopword_file à
        myisamchk, en donnant les mêmes valeurs que
        pour mysqld. Par exemple, si vous avez donnez
        une taille minimale de mot de 3, vous pouvez réparer votre
        table avec myisamchk :
      
shell> myisamchk --recover --ft_min_word_len=3 tbl_name.MYI
        Pour vous assurer que le serveur et myisamchk
        utilisent les mêmes valeurs pour les index, vous pouvez les
        placer dan s les sections [mysqld] et
        [myisamchk] du fichier d'options :
      
[mysqld] ft_min_word_len=3 [myisamchk] ft_min_word_len=3
        Une alternative à l'utilisation de myisamchk
        est l'utilisation de REPAIR TABLE,
        ANALYZE TABLE, OPTIMIZE
        TABLE ou ALTER TABLE. Ces commandes
        sont effectuées par le serveur, qui connaît la configuration
        des index en texte plein.
      
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

