SELECT *
FROM Livre
WHERE MATCH(auteur, titre)
AGAINST ('Jules');
SELECT *
FROM Livre
WHERE MATCH(titre, auteur)
AGAINST ('Jules Verne');
id
auteur
titre
14 Jules Verne
De la Terre à la Lune
16 Henri-Pierre Roché Jules et Jim
15 Jules Verne
Voyage au centre de la Terre
id
auteur
titre
14 Jules Verne
De la Terre à la Lune
15 Jules Verne
Voyage au centre de la Terre
16 Henri-Pierre Roché Jules et Jim
Ces deux requêtes retournent les mêmes lignes. Vous pouvez donc voir que l'ordre des colonnes dans MATCH n'a aucune
importance, du moment qu'un index FULLTEXT existe sur ces deux colonnes. Par ailleurs, la recherche se fait bien sur les deux
colonnes, et sur chaque mot séparément, puisque les premières et troisièmes lignes contiennent 'Jules Verne' dans l'auteur, tandis
que la deuxième contient uniquement 'Jules' dans le titre.
Par contre, l'ordre des lignes renvoyées par ces deux requêtes n'est pas le même. Lorsque vous utilisez MATCH... AGAINST
dans une clause WHERE, les résultats sont par défaut triés par pertinence.
La pertinence est une valeur supérieure ou égale à 0 qui qualifie le résultat d'une recherche FULLTEXT sur une ligne. Si la ligne
ne correspond pas du tout à la recherche, sa pertinence sera de 0. Si par contre elle correspond à la recherche, sa pertinence sera
supérieure à 0. Ensuite, plus la ligne correspond bien à la recherche (nombre de mots trouvés par exemple), plus la pertinence
sera élevée.
Vous pouvez voir la pertinence attribuée à une ligne en mettant l'expression MATCH... AGAINST dans le SELECT.
Cinquième exemple : affichage de la pertinence de la recherche
Code : SQL
SELECT *, MATCH(titre, auteur) AGAINST ('Jules Verne Lune')
FROM Livre;
id
auteur
titre
MATCH(titre, auteur) AGAINST ('Jules Verne Lune')
1 Daniel Pennac
Au bonheur des ogres
0
2 Daniel Pennac
La Fée Carabine
0
3 Daniel Pennac
La Petite marchande de prose 0
4 Jacqueline Harpman Le Bonheur est dans le crime 0
5 Jacqueline Harpman La Dormition des amants
0
6 Jacqueline Harpman La Plage d'Ostende
0
7 Jacqueline Harpman Histoire de Jenny
0
Partie 2 : Index, jointures et sous-requêtes
83/414
www.openclassrooms.com
Précédent

- 83/413

Suivant