Salut,
Sous la pression de mes clients, j'ai du refaire une methode de recherche...
La précédante, basée sur le classique FULLTEXT de MySQL n'était pas assez satisfaisante. Scores incompréhensibles et imprévisibles... Pas vraiment précis... Pas prévu pour le français.
Après une vague recherche, j'ai opté pour Lucene !!!
http://framework.zend.com/manual/en/zend.search.lucene.html
Le principe est de créer une base de données uniquement dédié à l'indexation et à la recherche. C'est pas très évident à utiliser au première abord, mais au final... Tout est configurable dans ce moteur de recherche : algo de scoring, et sous quelle forme sont stoqués les champs à rechercher.
Bref, en rentrant dans cette index mes champs sous formes normale, canonisées (pas de mot usuel, forme canonique des mots cf. stemmer, et forme phonétique cf. Soundex). Le résultat est très bon...
C'est une idée que je te donne. Mais aussi pas mal de boulot!
A+