iGu'T.fr

Aller au contenu | Aller au menu | Aller à la recherche

lundi 8 janvier 2007

L'auteur de Sphinx embauché par MySQL

Andrew Aksyonoff le développeur de Sphinx viens d'etre embauché par MySQL pour développer Sphinx :)
Donc le développement devrait s'accelerer un peu (un CVS/SVN public et bugracker ? ;) )! et surtout une meilleur intégration dans MySQL via SphinxSE

Annonce sur blog de MySQL Performance

vendredi 29 décembre 2006

Sphinx, un moteur de recherche ultra efficace

Comme promis, voila un ticket sur Sphinx, un des moteurs de recherche les plus efficace.

Développeur Web pour IPB à mes temps perdus et tres sensibles à l'optimisation du code, j'ai remarqué que sur les gros forums d'Invision, le moteur de recherche FullText est une vraie "merde" dès que le nombre de message deviens trop important. En effet il faut plusieurs secondes pour obtenir un resultat. Un autre problemes rencontrés aussi est la limite de 3 caractères lors de la recherche, cette limite est tres contrainante impossible de recherche des mots tres courant (surtout en informatique) comme IP, SIP, MSN, MAC, PHP, IPB.... et le probleme est tres génant aussi pour le reference des produits qui sont tres courant...

J'avais commencé l'année derniere un moteur de recherche alternatif pour IPB pour un gros site d'actualité francais (avec un forum IPB) en utilisant le projet Xapian, ca a jamais debouché complement et Xapian était tres efficace mais

  • Nécessite un module pour Apache
  • Indexation très longue et complexe à mettre en place
  • Peu de documentation sur la version PHP et requete dur à construire (projet surtout prévu pour du C & co)

Pendant mes "vacances d'été", j'avais commencé à me lancer dans le portage du moteur de recherche utilisant Xapian pour la derniere version d'IPB. Suite à une news sur le site SDZ a propos de leur probleme de moteur de recherche, un des developpeurs du site a dit qu'il travaillait sur l'utilisation de Sphinx pour remplacer MySQL FullText. Je me suis donc interressé à Sphinx.

et j'ai trouvé un petit projet sympa ! Un développeur qui avait rendu public son moteur de recherche texte integrale après avoir rien trouvé sur Internet

Fonctionnalités de Sphinx

  • Support de Mysql, PostreSQL, "XML"
  • Indexation rapide (moins de 5min pour 2millions de messages)
  • Plusieurs modes de recherche (Correspondance tous les mots, Correspondance une phrase, Correspondance "boolean"...)
  • Recherche très rapide ;)
  • Support de la recherche décentralisé
  • Intregration simple grace aux API (Actuellement PHP et Python officielles )
  • Support de soundex et stemmer (Algo pour optimiser la recherche suivant la langue)

Inconvénients (avis perso)

  • Pas de support encore du wildcard (une recherche type mang*)
  • Pas de paquet (rpm, deb...) pour les principales distro
  • Pas de Wiki pour aider dans la documentation actuellement la documenation n'est pas complement à jour et ca pourrait etre interresant d'avoir une documentation "multi langue"
  • Pas de CVS/SVN/Trac enfin... il y a un CVS mais il tourne sur la machine de l'auteur et pas d'acces public ! ca serai plus d'interresant d'avoir un CVS public, ca permet de pouvoir recuperer plus facilement le code et un Trac permettrait une gestion des bugs actuellements ca se passe sur le forum :s

J'ai déjà demander plusieurs fois à l'auteur de mettre en place un SVN avec Trac ;)

Je recommande d'utiliser la version 0.9.7rc2 (actuellement) elle corrige beaucoup de bugs et rajoute le support de plusieurs attributs pour la recherche et un nouveau mode de recherche (mode étendu qui permet de mixer les differents types de recherche)

Indexation avec Sphinx
Sphinx n'indexe pas les messages en direct (à l'inverse du FullText de MySQL), il faut donc relancer l'indexation de la base souvent (le souvent depend des besoins pour une forum une 15aine de minutes suffisent). Sphinx propose un "schema" main + delta qui permet d'eviter une reindexation complete de la base (les anciens messages n'ont pas besoin d'etre reindexer souvent)

Le principe est assez simple
on dispose 2 tables, le main et le delta.
La table main contient l'ensemble de base, on la met à jour une fois par jour, puis toutes les 15 minutes, on met à jour la table delta qui contient les nouveaux messages non indexé dans la table main donc l'indexation de la table dure qqes secondes et cela permet d'avoir un index à jour (il n'est pas possible de mettre à jour une table actuellement, c'est un projet et encore experimentale actuellement)

Sphinx permet après de faire une recherche directement sur les 2 bases

SphinxForIPB
Au final, j'ai donc sorti SphinxForIPB qui permet de remplacer le moteur de recherche d'IPB. La modification ne demande aucune modification de fichier IPB et rajoute uniquement une nouvelle table dans la base de donnée et modifie un settings du PCA (on peux revenir en mode normal/FullText très facilement). SphinxForIPB tourne depuis un bon mois sur Macbidouille et la recherche est devenu un vrai bonheur à utiliser (ultra rapide) et beaucoup moins de probleme de lock de table et de ralentissement du forum

PCinpact a annoncé recement utilisé Sphinx pour le moteur de recherche de leur site :) et va bientot utiliser ma mod SphinxForIPB sur leur forum :)

Pour plus d'information,
le site officiel de Sphinx,
un comparatif des moteurs de recherche du moment
Documentation SphinxForIPB sur le Wikinvision
Annonce PCinpact

mardi 19 décembre 2006

SphinxForIPB RC3 disponible !

C'est la journée des nouvelles versions !

Nouvelle version de SphinxForIPB disponible

SphinxForIPB c'est quoi ? C'est un moteur de recherche alternatif pour IPB, il utilise Sphinx qui est un moteur de recherche full text ecrit en C/C++. Il permet d'avoir de réaliser des recherches sur des mots de 2 caracteres et il est ultra rapide ! (requete inferieur à 0.1sec)

Changelog depuis la dernière version :

  • Compatible IPB 2.2
  • Passage à Sphinx 0.9.7RC2
  • Message d'erreur quand sphinx est HS (au lieu d'afficher aucun resultat trouvé)

Documentation

Topic sur IBF

La nouvelle version est disponible en piece joint !

Dans un prochain ticket, j'expliquerai un peu plus sur le fonctionnement de Sphinx, ses avantages....

lundi 18 décembre 2006

E2T 2.3 Beta 1 Disponible

L'E2T Team est heureux de vous presentez la nouvelle version E2T !

Au programme

  • Compatible IPB 2.2
  • Réorganisation des templates
  • Systeme de notation
  • Nouvelles options pour les flux RSS
  • Affichage des fichiers dans le profil

et aussi des corrections de bugs !

Rappel des fonctions d'E2T :

  • Mod 100% IPB Composant
  • Compatible IPB 2.2.x
  • 100% en Francais et language packisé !
  • 0 fichier modifié !
  • Systeme de permissions Interne
  • Validation des fichiers possibles
  • Systeme d'upload interne
  • Tracker de fichier
  • AutoTopic
  • Flux RSS
  • et plein encore de fonctions !

Télécharger cette version

vendredi 15 décembre 2006

Welcome to blog de gu't !

Salut,

Ca fait longtemps que je voulais me mettre au blogging Donc voila c'est fait
Une petite présentation rapide pour les personne qui ne me connaissent pas
Pseudo : Prolag ou encore Gu, Gu'T / iGut..
Age : 21 ans
Profession : Technicien réseau (spécialisé Sécurité et Wifi)

Dans ce blog, je parlais des differents projets sur lequel je bosse :
En effet, je suis Administrateur du forum NETGEAR france donc je causerai de réseau, Wifi & co.

Mon forum tournant sous InvisionBoard et étant membre actif de la communauté française d'Invision : IBF, je parlerai des mods que je dévellope pour IPB
Comme E2T (Espace de Téléchargement) ou encore SphinxForIPB (un nouveau moteur de recherche ultra rapide qui utilise Sphinx )

Aussi d'ordinateur Mac suite à mon switch vers un MacBook depuis 6 mois :)

Et aussi de pingouin avec Linux (Guide / doc sur Sphinx, FreeRadius, ndiswrapper...)

Bonne lecture

page 3 de 3 -