Je viens de rajouter un truc sur la recherche en venant d'étudier ce matin un peu une fonction sql qui existe.
je fais ainsi la recherche de jeux avec :
brasse : http://www.jedisjeux.net/search_results ... _search=Ok
aje of stim : http://www.jedisjeux.net/search_results ... _search=Ok
puerto ricco : http://www.jedisjeux.net/search_results ... _search=Ok
et ça marche ! xD
Il y a 12 commentaires
Non, tu me fais un seul appel à la fonction soudex par page maxi...
- BlueWHERE g.soundex = SOUNDEX('".$recherche."')
ça n'en fait pas qu'un seul ça ?!
c'est le jeu auquel le soundex est comparé qui change ainsi je ne vois pas pourquoi mysql ferait plusieurs fois le soundex de recherche dans la requête.
WHERE g.soundex = SOUNDEX('".$recherche."')
ça n'en fait pas qu'un seul ça ?!
c'est le jeu auquel le soundex est comparé qui change ainsi je ne vois pas pourquoi mysql ferait plusieurs fois le soundex de recherche dans la requête.
- loic_425oui, tu as raison "normalement.".. Mais avec des bases de données, on sait jamais, il suffit d'un index mal placé pour qu'il analyse le soundex pour chaque ligne de la table g.
Ceci est valable pour Oracle, sur innoDb (notre mysql), je ne sais pas si l'optimiseur ne va pas analyser le soundex pour chaque ligne.
Pour le soundex de php, il existe des améliorations.
Ca me plait moyen cette réduction d'une phrase complete en une seule valeur (une valeur pas mot ou par syllabes, ça faciliterai les recherches).
A voir aussi, la disstance de levinstein pour la recherche !
Je l'utilise en sus du soundex dans l'insertion, pour vérifier que les 2 noms ne sont pas trop différents.