Bonjour,
Je souhaite faire un moteur de recherche. J'ai 3 tables : textes, mots et mots_textes.
La table textes contient tout les textes sur lesquels portera la recherche.
La table mots contient la liste des mots qui peuvent être utilisé pour effectuer la recherche.
Et la table mots_textes est la table qui indique dans quels textes se trouve tels mots.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 textes : id | texte ---------- 1 | Une voiture roule sur un pont 2 | Un piéton marche sur un pont 3 | La voiture est rouge
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 mots : id | mot -------- 1 | voiture 2 | roule 3 | pont 4 | piéton 5 | marche 6 | rougeA partir de là, j'aimerais faire une requête SQL qui me récupère la liste des textes qui contiennent la totalité des mots recherchés. Plus il y a de mots recherchés, moins il y a de résultats.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 mots_textes : mot | texte ----------- 1 | 1 1 | 3 2 | 1 3 | 1 3 | 2 4 | 2 5 | 2 6 | 3
Par exemple, pour le mot "voiture", le résultat est 1 et 3 (les textes 1 et 3).
Pour les mots "voiture" et "rouge", le résultat est 3.
Pour le mot "pont", le résultat est 1 et 2.
Pour les mots "pont" et "marche", le résultat est 2.
Pouvez vois m'aider à faire la requête qui permet de récupérer, par exemple, la liste des textes qui contiennent "voiture" et "roule" ?
La requête doit pouvoir être exécuté par MySQL.
Merci.
Partager