Effectuer des recherches en texte intégral
MySQL:recherches en texte intégral1. Principes
MySQL permet d’effectuer des recherches de mots sur l’ensemble d’un texte (ou de plusieurs textes).
Pour utiliser cette fonctionnalité, il faut :
-
créer un index spécial, de type FULLTEXT ;
-
utiliser la fonction MATCH AGAINST dans les recherches.
Les index FULLTEXT peuvent être créés sur des colonnes de type CHAR, VARCHAR ou TEXT, mais uniquement sur des tables MyISAM ou InnoDB.
Index:FULLTEXT MyISAM2. Création de l’index FULLTEXT
FULLTEXTLes index FULLTEXT peuvent être créés lors de la création initiale de la table (dans l’ordre CREATE TABLE) ou ultérieurement (par un ordre ALTER TABLE ou un ordre CREATE FULLTEXT INDEX).
Pour créer un index FULLTEXT dans un ordre CREATE TABLE ou ALTER TABLE, il faut utiliser une clause FULLTEXT similaire à la clause INDEX présentée dans le chapitre Construire une base de données dans MySQL. L’ordre CREATE FULLTEXT INDEX est une variante de l’ordre CREATE INDEX présenté dans le chapitre Construire une base de données dans MySQL.
Syntaxe
CREATE TABLE nom_table
(
spécification_colonnes,
FULLTEXT(nom_colonne[,...])
)
ALTER TABLE nom_table ADD FULLTEXT(nom_colonne[,...])
CREATE FULLTEXT INDEX nom_index ON nom_table(nom_colonne[,...])
Exemple
mysql> CREATE FULLTEXT INDEX ix_texte
->...