Le dernier type de recherche est un peu particulier. En effet la recherche avec extension de requête se déroule en deux étapes.
1. Une simple recherche naturelle est effectuée.
2. Les résultats de cette recherche sont utilisés pour faire une seconde recherche naturelle.
Un exemple étant souvent plus clair qu'un long discours, passons-y tout de suite.
Une recherche naturelle effectuée avec la chaîne "Daniel" sur les colonnes auteur et titre donnerait ceci :
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre, auteur)
AGAINST ('Daniel');
id
auteur
titre
2 Daniel Pennac La Fée Carabine
1 Daniel Pennac Au bonheur des ogres
13 Daniel Pennac Comme un roman
3 Daniel Pennac La Petite marchande de prose
Par contre, si l'on utilise l'extension de requête, en ajoutant WITH QUERY EXPANSION, on obtient ceci :
Code : SQL
SELECT *
FROM Livre
WHERE MATCH(titre, auteur)
AGAINST ('Daniel' WITH QUERY EXPANSION);
id
auteur
titre
3 Daniel Pennac
La Petite marchande de prose
13 Daniel Pennac
Comme un roman
1 Daniel Pennac
Au bonheur des ogres
2 Daniel Pennac
La Fée Carabine
4 Jacqueline Harpman Le Bonheur est dans le crime
En effet, dans la seconde étape, une recherche naturelle a été faite avec les chaînes "Daniel Pennac", "La Petite marchande de
prose", "Comme un roman", "Au bonheur des ogres" et "La Fée Carabine", puisque ce sont les résultats de la première étape
(une recherche naturelle sur "Daniel").
"Le Bonheur est dans le crime" a donc été ajouté aux résultats, à cause de la présence du mot "bonheur" dans son titre
("Bonheur" étant également présent dans "Au bonheur des ogres")
Ainsi s'achève la présentation des requêtes FULLTEXT, ainsi que le chapitre sur les index.
En résumé
Un index est une structure de données qui reprend la liste ordonnée des valeurs auxquelles il se rapporte.
Un index peut se faire sur une ou plusieurs colonnes ; et dans les cas d'une colonne de type alphanumérique (CHAR,
VARCHAR, TEXT, etc.), il peut ne prendre en compte qu'une partie de la colonne (les x premiers caractères).
Partie 2 : Index, jointures et sous-requêtes
87/414
www.openclassrooms.com
Précédent

- 87/413

Suivant