VEF Blog

Titre du blog : Vefblog, le site
Auteur : vefblog
Date de création : 28-12-2004
 
posté le 07-02-2008 à 12:41:46

Recherche dans les textes avec Sphinx

Annonce 

Voici le retour de la recherche dans les articles et les commentaires, beaucoup plus rapide que avant.

 

Je n'utilise plus le même système pour la recherche, voici donc le nouveau comportement :


Suite technique de l'article

Je n'utilise plus les index fulltext de mysql, qui mettaient à genoux le serveur et ne permettaient pas une recherche rapide de texte + critère (comme par exemple du texte dans un blog précis)

J'ai découvert sphinx, un moteur de recherche de texte puissant et rapide. Je l'ai donc installé sur le serveur et pris en compte par vefblog.

Il y a deux index : un pour les articles et l'autre pour les commentaires. Chaque nuit, les index sont recréés avec l'option -rotate de indexer. Pour le moment je n'ai pas implémenté les tecniques de delta des index, car un article de n'importe quelle date peut etre modifié. La création des index prend une dizaine de minutes.

Pour la prise en compte automatique des blogs discrets, effacés, des articles en brouillons ou postés etc, j'utilise la commande de l'api php UpdateAttribute. Ainsi, un blog ou un article qui vient d'etre effacé, n'est plus pris en compte même dans le nombre d'éléments trouvés.

Dans la recherche, je fais d'abord une requete sur 0 éléments afin d'avoir le nombre total que j'affiche ; cela me permet aussi d'avoir le nombre de pages et de gérer les liens. Puis je fais une requête sur 10 éléments en fonction de la page affichée, comme sous mysql. Je fais ensuite une requete mysql sur un in ( ) des ids trouvés par Sphinx, que je re-trie ensuite dans l'ordre des indices trouvés par Sphinx car sinon mysql me remet tout dans le désordre. Puis les articles et commentaires sont affichés de façon habituelle.

 

 Grâce à ce système, Vefblog a maintenant un moteur de recheche performant.

 

Commentaires

aurore le 14-02-2008 à 01:20:45
un oeil de lynx ! pardon...de sphinx !