Un moteur de recheche avec Jelix
17 février 2009A faire le tour de la toile à la recherche d'un "Search Engine" pour HaveFnuBB, Laurent sur la mailing list de Jelix m'a montré un tuto de Symfony avec les mêmes désiderata que mézigues ;)
A savoir, créer un moteur de recherche qui ne soit pas dépendant :
- d'un soft tiers (tels Lucene, Xapian, Sphinx, nécéssitant parfois de compiler un module php)
- d'un SGBD spécifique (par exemple en utilisant le FULLTEXT spécifique à MySQL et surtout à MyISAM)
Le tuto de symfony reprend des idées de Roscripts.com, quant à l'algo Stemmer, et des Stopwords évoqués.
Ce que je retiens donc pour la roadmap de ce module de moteur de recherche :
- une table search_words composée des colonnes id (pour conserver le lien avec la table contenant les messages), words (contenant les mots du message), weight (étant le poids de chaque mot).
- une méthode permettant d'alimenter / mettre à jour la table search_words (Quand on ajoute un message au forum ? via une réponse à jEvent::notify('PostAfterSave') ? )
- une méthode permettant la recherche
- une méthode permettant d'épurer les mots inutiles (stopwords) du message (1)
- 2 templates : un pour le formulaire de recherche ; un pour l'affichage du résultat.
Reste à tester tout cela !
(1) ps : je n'ai pas (encore) trouvé d'implem' PHP à l'algo Porter Stemmer pour les frenchies (en UTF-8) ;-).
malgré tout un billet interessant sur ce dernier sujet.

Commentaires
J'en conclus que mon idée de soundex ne ta pas séduit, je suis déçu ;)
Tu n'as pas réagi d'ailleurs.
Moi ce qui m'embête dans ces systèmes de simplification des mots, c'est qu'ils prennent en compte la prononciation, la racine, mais pas les fautes de frappe.
si je ne m'abuse l'algorithme stem le permet il faut juste trouver la bonne implémentation