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.
Vos commentaires et/ou trackbacks
Le mardi 17 septembre 2013 à 18:27, commentaire par Jérôme :: site :: #
MySQL n'est juste pas du tout adapté à faire de la recherche full-text, non ?
Une petite instance Solr ou Elastic Search dans un coin et la vie devient si simple... ;D
Le mardi 17 septembre 2013 à 21:10, commentaire par perrick :: site :: #
Bien sûr que d'autres alternatives existent. Mais vu la taille riquiqui de la liste des questions, je n'avais aucune envie d'installer un autre outil ;-)
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.