Y'a pas que "MATCH AGAINST", y'en a toute une floppée.
Je te conseille "FREETEXT" qui permet de faire une recherche plus naturelle (chaque mot de la phrase est pondéré de la même façon, ou suivant un dictionnaire de mots-clés, puis toutes les lignes correspondant à au moins un mot sont retournée avec un score. les mots "polluants" - le, des, c', etc. - sont ignorés avec cette méthode.)
Ainsi, si tu as dans ta table :
1 Le chat cours après la souris.
2 Les chiens détestent les chats, mais les chats aiment les souris.
3 Le chien est gris comme une souris.
4 Le fromage et le pain sont les plats de prédilection des souris.
Si tu recherches alors tu auras les lignes dans cette ordre :
"chiens et chats" :
2 "chiens" * 1 et "chats" * 2
1 "chat" * 1 (mal ortographié)
C'est tout : "et" est ignoré, donc
"quand le chat est de sortie, les souris dansent"
2 "chats" * 2 (mal orthographié) "souris" * 1
1 "chat" * 1 et "souris" * 1
3 "souris" * 1
4 "souris" * 1, mais "noyé" dans un texte plus long, donc moins pertinant
les autres mots sont soit ignorés, soit absents, donc ne retournent pas de lignes.
En fait, avec un peu de boulot, tu peux faire un mini-google sans problème, et les performances sont très bonnes (en fait, l'indexation est lente, car le SGBD génère un lexique de tous les mots, avec champ lexical, synonymes et ortographes similaire, mais ensuite seul ce dictionnaire est interrogé pour faire la requête, ce qui évite de parcourir des millions de caractères pour rien)
Normalement, il y a aussi "CONTAINS" qui permet de pondérer les mots, ou forcer une orthographe similaire, et selon les SGBD, tu peux aussi avoir des fonction linguistiques qui te permettent de chercher dans d'autres langues (pour ça il faut définir une colonne langue, et posséder un fichier dictionnaire pour les traductions), ou les synonymes/antonimes (à nouveau, il faut un dictionnaire) et tout un tas d'autres fonctionnalités. Le moteur fulltext d'Oracle est particulièrement bien doté sur le sujet.