La limite des 50% sur une recherche FULL TEXT avec Mysql
mardi 17 septembre 2013 :: perrick :: MySQL :: 2 commentaires :: aucun trackbackUn mot qui est trouvé dans la moitié des enregistrements d'une table n'est pas efficace pour trouver les document appropriés. En fait, il trouvera sûrement beaucoup de documents inappropriés à la recherche. On sait tous que cela arrive souvent lorsqu'on recherche quelque chose sur internet en utilisant un moteur de recherche. Extrait de la documentation MySQL pour Recherche en texte intégral (Full-text) dans MySQL
Sauf que dans le cas du petit corpus de questions / réponses que compose la section FAQ d'Opentime et encore plus dans le minuscule corpus généré pour mes tests unitaires, ce seuil de 50% m'a fait arracher les cheveux pendant 2h. Et la solution pour outre-passer cette limitation est sur la page suivante de la documentation : il suffit d'ajouter l'option IN BOOLEAN MODE. Elle permet - entre autres - de ne pas utilise pas le seuil de 50%. Problème : elle ne trie pas automatiquement les lignes par ordre de pertinence décroissante. Heureusement qu'il y a encore d'autres astuces possibles : MySQL match() against() - order by relevance and column.