MySQL - Moteur de recherche full texte
Publi� le 7 avril 2006

MySQL, pour se démarquer des ses concurrents propriétaires, a introduit dans son moteur de base de données, un moteur de recherche full text. Késako ? C'est un système d'indexation des mots contenus dans des champs texte. Bien entendu, cela se fait en prenant dans les "ressources" mais la technique semble efficace.

Pour l'activer, il faut :

  1. définir les champs à indexer (option fulltext)
  2. exécuter les requêtes suivantes :

Recherche exacte :


mysql
> SELECT * FROM articles
    
-> WHERE MATCH (title,body)
    ->
AGAINST ('database' IN NATURAL LANGUAGE MODE);

Recherche approchée (avec des algo de type soundex) :


mysql
> SELECT * FROM articles
    
-> WHERE MATCH (title,body)
    ->
AGAINST ('database' WITH QUERY EXPANSION);

Les booléens sont autorisés et il est possible d'utiliser son propre parser de mots.