Salut
je vais faire sur mon site, une recherche de mélodies musicales à partir du contour mélodique, c'est-à-dire, pour une petite mélodie écrite, je vais noter
- U (up) quand la mélodie monte
- D (down) quand elle descend
- R (repeat) quand la note ne change pas (se répète)
Bref, je vais avoir des enregistrements avec des trucs un peu barbares comme par exemple DUUDDDURDRUUUU.
Le visiteur va chercher une mélodie (à voir comment il l'écrit avec son clavier), et je vais en calculer le contour pour faire ma recherche.
Si le contour cherché est présent dans la base (champ like '%chaine cherchée%') c'est bon. Mais j'aimerai sortir les résultats proches, qui ont entre une et n (à moi de déterminer jusqu'à combien j'autorise) lettres qui diffèrent (ex : un D au lieu d'un U, le premier D en moins, 3 U au lieu de 4 à la fin...)
J'aimerai savoir comment faire en MySQL, ou au pire en PHP (mais ça veut dire que je vais charger toute la table, c'est pas terrible) pour trouver les enregistrements presques similaires, et classer par résultat.
D'après ce que j'ai compris du FULLTEXT, c'est qu'il est capable de rechercher quand on a plusieurs mots, les textes qui les ont tous, puis en manque un, puis 2... On peut mettre aussi le joker * pour rechercher une partie d'un mot.
mais là dans mon cas, c'est un seul mot barbare qui peut être assez long.
Vais-je devoir construire en PHP, avant la requête SQL, tous les mots proche de celui recherché ? (mais comment déterminer le % de similitude ?
Ou existe-t'il une fonction miracle que je n'aurai point vu ?
Merci d'avance pour votre aide
Partager