[phpBB] Optimiser le système de recherche


cybervince
WRInaute impliqué
WRInaute impliqué
 
Messages: 880
Inscription: 1 Aoû 2004

[phpBB] Optimiser le système de recherche

Message le Lun Sep 19, 2005 17:59

C'est un constat que je fais depuis pas mal de temps, la base de données de phpBB devient vite énorme lorsque les posts arrivent, et quand on regarde ce qui prend le plus de place, c'est les tables servant à faire les recherches.

Pour ma part ca donne ca:

Code: Tout sélectionner
phpbb_posts_text:               4,2 Mo
phpbb_search_wordlist:         1,3 Mo
phpbb_search_wordmatch:     9,4 Mo


Le principe serait de vider les tables servant aux recherches et de mettre un index en FULLTEXT sur le contenu des posts ce qui a pour conséquence de doubler la taille de la table.

Dans mon cas, je gagnerai 10-4 soit 6 Mo sur la base.

Ensuite pour effectuer les recherches, j'utiliserai la fonction MATCH de MySQL qui me retournerai les posts jugés les plus pertinents (il se base sur les différents mots contenus dans le post, donc si on demande de rechercher un ou plusieurs mots, il les trouvera).

J'aimerai avoir vos avis et vos expériences par rapport à cela.
Si certains ont déjà tenté ce truc, si vous voyez des régressions qu'il pourrait y avoir...


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

Message le Lun Sep 19, 2005 18:14

Perso je vide régulièremment ces tables sinon je m'en sort plus...


cybervince
WRInaute impliqué
WRInaute impliqué
 
Messages: 880
Inscription: 1 Aoû 2004

Message le Lun Sep 19, 2005 18:23

Ohax a écrit:Perso je vide régulièremment ces tables sinon je m'en sort plus...

C'est aussi ce que je compte faire, mais il faut admettre que pouvoir rechercher un post datant d'avant guerre est bien pratique quand on en a besoin, et si tu vide la table, et bien les recherchent partent de zéro, ce qui est un peu dommage, car c'est avant tout pratique pour les vieux posts.


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

Message le Lun Sep 19, 2005 18:31

Si ton forum est bien indexé tu peu te permettre de faire une boite de recherche google
Dernière édition par Ohax le Lun Sep 19, 2005 18:32, édité 1 fois.


Mumuri
WRInaute passionné
WRInaute passionné
 
Messages: 1800
Inscription: 3 Nov 2004

Message le Lun Sep 19, 2005 18:32

ou alors tu désactives les recherches et tu mets le truc google à la place.


cybervince
WRInaute impliqué
WRInaute impliqué
 
Messages: 880
Inscription: 1 Aoû 2004

Message le Lun Sep 19, 2005 18:38

Oui j'ai déjà la boite de recherche Google, mais ca nécessite effectivement d'avoir un forum ayant tout ses posts référencés, et je ne suis pas certain que ca soit bien le cas.
Alors qu'avec cette méthode même les posts nouvellement créés et non référencés sont accessibles.

Disons que le post était plus destiné à améliorer le système de recherche en l'allégeant, que de contourner le problème.

Je me demande en fait si y'a pas une fonction miracle qui permettrai de faire une recherche dans la table sans avoir besoin de rajouter cet index en fulltext qui est indispensable à la fonction MATCH.


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Inscription: 4 Oct 2002

Message le Lun Sep 19, 2005 18:59

l'avantage de la recherche de phpbb est de chercher par forum et utilisateurs.
En utilisant le fichier stopwords, tu peux déjà vider ta table de pas mal de mot.

François


cybervince
WRInaute impliqué
WRInaute impliqué
 
Messages: 880
Inscription: 1 Aoû 2004

Message le Lun Sep 19, 2005 19:33

Suede a écrit:l'avantage de la recherche de phpbb est de chercher par forum et utilisateurs.
En utilisant le fichier stopwords, tu peux déjà vider ta table de pas mal de mot.

François

Ca sera toujours possible de faire une recherche pas forum, vu que ca n'est pas une information qui est supprimée de la base.
Juste besoin de faire une jointure au niveau SQL pour travailler sur un forum et/ou un utilisateur.

sgaze
WRInaute impliqué
WRInaute impliqué
 
Messages: 538
Inscription: 2 Fév 2004

Message le Lun Sep 19, 2005 20:14

Pour l'instant j'ai pris le parti de supprimer dans phpbb_search_wordmatch les occurences d'une liste comme celle là. Mais c'est lourd...

'alors', 'au', 'aucuns', 'aussi', 'autre', 'avant', 'avec', 'avoir', 'bon', 'car', 'ce', 'cela', 'ces', 'ceux', 'chaque', 'ci', 'comme', 'comment', 'dans', 'des', 'du', 'dedans', 'dehors', 'depuis', 'deux', 'devrait', 'doit', 'donc', 'dos', 'droite', 'début', 'elle', 'elles', 'en', 'encore', 'essai', 'est', 'et', 'eu', 'fait', 'faites', 'fois', 'font', 'force', 'haut', 'hors', 'ici', 'il', 'ils', 'je juste', 'la', 'le', 'les', 'leur', 'là', 'ma', 'maintenant', 'mais', 'mes', 'mine', 'moins', 'mon', 'mot', 'même', 'ni', 'nommés', 'notre', 'nous', 'nouveaux', 'ou', 'où', 'par', 'parce', 'parole', 'pas', 'personnes', 'peut', 'peu', 'pièce', 'plupart', 'pour', 'pourquoi', 'quand', 'que', 'quel', 'quelle', 'quelles', 'quels', 'qui', 'sa', 'sans', 'ses', 'seulement', 'si', 'sien', 'son', 'sont', 'sous', 'soyez sujet', 'sur', 'ta', 'tandis', 'tellement', 'tels', 'tes', 'ton', 'tous', 'tout', 'trop', 'très', 'tu', 'valeur', 'voie', 'voient', 'vont', 'votre', 'vous', 'vu', 'ça', 'étaient', 'état', 'étions', 'été', 'être'


cybervince
WRInaute impliqué
WRInaute impliqué
 
Messages: 880
Inscription: 1 Aoû 2004

Message le Mar Sep 20, 2005 17:54

sgaze a écrit: Mais c'est lourd...

C'est exactement ca le soucis.
Ca oblige à faire des actions manuelles.

Albert1
WRInaute impliqué
WRInaute impliqué
 
Messages: 935
Inscription: 23 Aoû 2005

Message le Mar Sep 20, 2005 19:35

cybervince a écrit:Ca oblige à faire des actions manuelles.

y a quand même un MOD qui facilite grandement la manip :wink:

j'ai oublié le nom, mais comme vous êtes des experts de Google :wink:


cybervince
WRInaute impliqué
WRInaute impliqué
 
Messages: 880
Inscription: 1 Aoû 2004

Message le Dim Sep 25, 2005 22:50

Enfin pour en revenir au sujet, je cherchais plus à avoir des avis et des éventuels retour d'expérience par rapport à l'utilisation de la fonction MATCH de MySQL sur des gros phpBB, car en testant sur mon serveur chez moi, en fesant directement la requête en base ca m'a l'air assez rapide. (base avec 11000 messages)


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Inscription: 4 Oct 2002

Message le Lun Sep 26, 2005 9:23

Oui, il y a des mods pour supprimer les mots de maniere automatique et propre :-) .


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités