Bonjour,
J'utilise actuellement la requête ci-dessous :
Exécuter de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $Req_ouvrage_select8 = $pdo->prepare("SELECT * FROM `ouvrage` WHERE MATCH (nom) AGAINST (?) GROUP BY nom ORDER BY MATCH(nom) AGAINST (?) DESC ;");
Je rencontre 2 problèmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $liste_cles = explode(" ", $term); $liste = array(); foreach($liste_cles as $cle) { $cle = $cle."*"; array_push($liste, $cle); } $liste_SearchText = stripslashes(implode(" ", $liste)); $Req_ouvrage_select8->execute(array($liste_SearchText,$liste_SearchText));
- Si je fais une recherche avec $term = "frere des ours" ( d'après ce que j'ai compris) :
-> mysql ignore les mots de 3 caractères et moins, donc "des" n'est pas pris en compte
-> ours fait partie des adjectifs et n'est donc pas pris en compte
De ce fait d'autres résultats "moins cohérent" avec la recherche arrivent devant
- Si je fais une recherche avec $term = "l'envers du grim"
Mysql me retourne une liste de résultat avec ( par exemple ) :
-> "L'envers" en 1ere position
-> XXXX
-> "L'envers du grimoire" en Nème position
Il faut que je saississe le titre en entier pour qu'il arrive en 1ere position.
Quelqu'un aurait'il une piste pour résoudre ces 2 problèmes ?
Merci par avance.
Partager