6.8 Recherche en Texte-entier (Full-text) dans MySQL
6 Référence du langage MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Restrictions avec full-text ->Paramétrage précis de la recherche Full-text de MySQL . A faire dans la recherche Full-text
|
6.8.2 Paramétrage précis de la recherche Full-text de MySQL
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 le TODO. Si vous utilisez MySQL depuis
les sources ( Installer MySQL à partir des sources ), 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.
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 liste des mots rejetés est définie dans le fichier
myisam/ft_static.c
.
Modifiez le selon vos goûts, recompilez MySQL et 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%.
-
Parfois le gestionnaire du moteur de recherche voudrait changer les opérateurs utilisés
pour les recherches booléennes sur des textes entiers. Ceux ci sont définis dans la
variable
ft_boolean_syntax
.
SHOW VARIABLES
.
Cependant, cette variable n'est pas modifiable, sa valeur est fixée dans
myisam/ft_static.c
.
Pour les modifications qui nécessitent une reconstruction des index
FULLTEXT
,
la méthode la plus simple pour les tables MyISAM est l'opération suivante,
qui reconstruit les fichiers d'index :
mysql> REPAIR TABLE nom_de_table USE_FRM;
|
|