Recherche phonétique
Bonjour à tous,
J'ai écrit un
article sur la recherche phonétique en PHP.
Cet article décrit une méthode alternative pour faire des recherches dans une base de données. Il est certain que de faire des recherches textuelles (exact string comparaison) et l'utilisation d'expression régulière est très utile. Mais parfois nous avons besoin d'un petit coup de pouce pour trouver ce que nous cherchons. Heureusement pour nos, PHP offre des fonctions qui aide à faire des recherches phonétiques. Ces fonctions peuvent être très puissantes à condition de penser à les utiliser.
Qu'en pensez-vous?
Très interressant, je la passe en News ^_^
zebdinou pour les intimes / Blog : http://www.zebden.fr
le 17/11/2006 à 17:35
Bzh
Oh ! Genial !
Mais heu, en pratique, comment l'utilise tu pour une recherche dans une BDD ? par exemple ?
Cela demande tout de meme beaucoup de ressources...
Mais idée génial.... Bravo...
Pas forcemment beaucoup de ressource.
MySQL utilise aussi la fonction SOUNDEX (regardez dans la doc).
Pour faire simple, il suffit pour chaque champ texte dans tes tables mysql, de rajouter a coté un champ 'sound' qui contiendra le soundex de chacun des mots de ton texte.
Tu blutes un index fulltext sur ce champ.
Ensuite, pour rechercher, tu lances un SELECT sur ce champs avec une condition du genre MATCH `sound` AGAINST (SOUNDEX('ta recherche')).
(je ne me rappelle plus de la syntaxe de SOUNDEX de mysql. Regarder la doc. Mais vous pouvez aussi directement générer ce soundex via PHP).
En revanche, les fonctions soundex de PHP et de MySQL utilise une prononciation anglaise des mots.
Il existe des algos pour pondre une prononciation à la française, mais c'est assez chiant à implementer dans MySQL.
C'est très vrai.
J'ai eu de meilleur résultats en utilisant metaphone() cependant. Je sais qu'il existe une algo pour metaphone() en français, mais je n'ai pas trouvé d'implantation en PHP. :-(
Il semblerait que DoubleMetaphone() donne de bon résultat aussi. Cette algorithme retourne deux clés possible pour un mot, et si je ne me trompe pas, la 2iemm clé prend en considération quelques subtilité de la langue française (et d'autre langue aussi).
C'est à tester.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: