Bonjour,
J'essaye de comprendre et de faire fonctionner un script php avec une bd texte à une BDD Mysql
Terme = colonne de ma bdd (dico en français de 90'000 mots)
$keywordClean = "un mot clef"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php // Compare un mot ($mot) à une liste ($mot) // en utilisant la fonction ($fonction). // Exemple: $resultats = filtre($mot,$liste,'soundex'); function filtre($mot,$liste,$fonction) { $resultat = array(); $mot_p = call_user_func($fonction,$mot); foreach($liste as $m) { $p = call_user_func($fonction,$m); $pourcentage = levenshtein($mot_p,$p)*100/strlen($mot); if ($pourcentage<=5) $resultat[]=$m; } return $resultat; } ?>
Tout se passe correctement si ce n'est que la sortie de ma BD se fait par un ordre ID qui n'a aucun poids et ne relève pas de la réalité souhaitée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php $requetea1 ="SELECT * FROM dico WHERE SOUNDEX(terme) LIKE SOUNDEX('$keywordClean') AND levenshtein(terme, '$keywordClean')<=2 ORDER BY -id DESC, -levenshtein(terme, '$keywordClean') DESC LIMIT 5"; ?>
Comment donner un poids comme l'exemple ci-dessus (pourcentage) sur ma requête mysql ? probablement avec MATCH mais je sèche...
Merci pour votre aide
Yule
Partager