Recherche full-text Mysql et fautes d'orthographes

  • Auteur de la discussion Auteur de la discussion theJB
  • Date de début Date de début
WRInaute occasionnel
Est-ce qu'il exite un truc tout fait dans msyql pour chercher un mot dans une db en prenant en compte les fautes d'orthographes?

par exemple dans une db contenant les villes de France, une recherche qui sur le mot "Parris" trouverai toute seule "Paris".
 
WRInaute discret
Perso j'ai fais un script qui gère les fautes d'orthographe mais c'est pas évident.
De plus j'utilise un simple LIKE pour ma recherche

Voici son fonctionnement avec ton exemple:
-je fais une première recherche avec le mot "Paaris"
-pour chaque resultat je calcul la différence entre les 2 variables
-Si un correspond à 100% parfait
-Si aucun résultat ou ressemblance inférieur à par ex 50% je compare chaque entrée de la table avec mon mot clé et je sors celui qui a la plus forte ressemblance.

Voila en gros comment je procède après on peut améliorer pas mal de truc. Je pense que tu peux appliquer ce principe pour la recherche FULL TEXT
 
WRInaute occasionnel
oué ya aussi LIKE mais je pensais pouvoir etre paresseux sur ce coup, mais apparement c raté..
 
WRInaute impliqué
finstreet a dit:
question bete... en full text y'a pas un pb pour les recherches où le mot fait 3 caractères ou moins ?
par défaut il est à 4 caractères, ça se configure dans le my.cnf comme ceci si l'on peut :
Code:
ft_min_word_len         = 3
 
WRInaute discret
soundex j'ai pas trouvé cela terrible... Ca marche pas trop mal en anglais mais avec des mots francais c'est pas trop ça...
 
WRInaute occasionnel
Il existe un algo soundex propre au français. J'avais croisé ça sur le net il y a quelques mois (années ?).
 
WRInaute accro
Se coder une recherche phonétique n'est pas monstrueux ... j'avais fait ca il y a quelques années . C'ets juste une histoire de remplacement de chaine de type

ai en e
ou en u
y en i
au en o
eau en o
que final en c
qu en c
th en t
dedoublonnage de rr en r tt en t ss en s
Simplification des double consonnes
Suppression des consonnes en derniere lettre

(bon c'est de mémoire tout ca ... y a tioute une serie a faire et dans le bon ordre)

etc etc

Bref toute une series de manip pour transformer un mot en son expression phonetique. Une fois cette routine au point, tu l'appliques a tous tes textes et quand on fait une recherche on recherche le mot phonétisé dans les texte phonetisés ...

Bon y a un peu d'huile de coude pour optimiser mais rien de monstrueux.

Appliqué au cas que tu décris :

Paris --> pari
Parriss --> pari

ou encore :

Bateau --> bato
batteau --> bato
bateaus --> bato
battau -- > bato
barque -> bato (heu non je déconne :D). barque devient barc
 
Discussions similaires
Haut