Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 16-09-2009 08:38:21

fanf73
Wik-wiki

[Résolu] Recherche sans indexation

Bonjour,

Je me suis retrouvé il y a quelques temps à la limite de mon offre d'hébergement au niveau de la taille de ma base de données. Mon forum grandissant de jour en jour, j'approchais dangereusement de la limite des 100Mo. Les tables les plus lourdes étant celles de recherche (pun_search_x), celles qui indexent les mots, j'ai désactivé l'indexation et supprimé tous les accès à la recherche en attendant de trouver une solution.

Pour ce faire, fichier include/search_idx.php, ligne 87 : j'ai commenté toutes les lignes de la fonction update_search_index($mode, $post_id, $message, $subject = null)

N'ayant pas vraiment le temps ni l'envie de changer d'hébergement pour le moment (ça m'obligerai à passer sur un serveur virtuel voir un serveur privé) et la recherche étant un élément assez important dans un forum, je dois trouver un moyen de ré-activer la recherche sans utiliser l'indexation.

Si quelqu'un s'est déjà lancé dans l'aventure je suis preneur, sinon tous les conseils sont les bienvenus. Ma principale piste pour le moment est d'utiliser une condition de la forme

where message LIKE '%mot_clef%'

en ayant au préalable préparé le texte entré dans le champ de recherche (cas de plusieurs mots, utilisation des " " pour une recherche de l'expression complète, ...)


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#2 16-09-2009 08:58:15

M@x
Membre

Re : [Résolu] Recherche sans indexation

La technique utilisé par Mpok sur ce forum ne te conviendrait pas ? A savoir deux bases distinctes, l'une pour les données "de base" et l'autre pour les infos de recherche.


...

Hors ligne

#3 16-09-2009 09:43:13

fanf73
Wik-wiki

Re : [Résolu] Recherche sans indexation

Je crains d'arriver une nouvelle fois en limite de stockage, j'avais 70Mo d'indexation quand je l'ai désactivé, je ne dois pas être loin des 100Mo maintenant hmm. Après je pourrais peut-être réduire un peu le poids en modifiant la longueur minimum des mots à indexer et en supprimant certains mais à la longue je me retrouverai avec le même soucis, à moins de ne pas avoir de limite de taille de base...


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#4 16-09-2009 17:53:25

Mpok
Néo Admin

Re : [Résolu] Recherche sans indexation

Sans indexation, ça risque de ramer, non ?
Si les tables d'index sont aussi grosses, c'est qu'il y a beaucoup de messages, donc un "LIKE %%" va être lent.
La suppression de certains mots dans le stopword semble déjà une piste à tenter avant d'en arriver à la suppression de l'indexation. Le gain peut atteindre assez facilement 15%, voire 20.
Ensuite, une autre piste possible (mais avec perte d'infos) : n'indexer que les posts récents (par exemple ceux de l'année en cours). Bon, évidemment, on perd la recherche sur les messages ancients. D'autre part, il faut relancer lea ré-indexation genre tous les mois pour faire coulisser la période.

Hors ligne

#5 16-09-2009 18:05:47

adaur
Membre

Re : [Résolu] Recherche sans indexation

Sinon, tu es chez quel hébergeur... ?


"As code is more often read than written it's really important to write clean code." - Franz
Twitter: @adaurfr
Mon fork de FluxBB: FeatherBB

Hors ligne

#6 28-09-2009 14:01:28

fanf73
Wik-wiki

Re : [Résolu] Recherche sans indexation

Oups, je n'avais pas vu ces deux réponses.

@Mpok : Je vais essayer ce soir en local de voir quels sont les mots les plus indexés et si je peux les ajouter en stopwords, et peut-être augmenter la taille minimum pour indexation.

@adaur31 : j'ai un PackPersoInitial chez 1and1, et le fait de monter en "gamme" dans le mutualisé ne permet pas d'avoir une plus grande base de données.


En fouillant le fichier "search.php" je suis tombé sur cette ligne

// Detect two byte character sets
$multibyte = (isset($lang_common['lang_multibyte']) && $lang_common['lang_multibyte']) ? true : false;

et il semblerait que la recherche ne passe pas par les tables d'indexation si on passe cette variable à "true".
Est-ce que quelqu'un à déjà fait l'essai ?


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#7 28-09-2009 17:41:13

adaur
Membre

Re : [Résolu] Recherche sans indexation

Certes, cela ne fait que déplacer le problème...

Mais je te conseille de changer d'hébergeur, tu peux avoir mieux et moins cher...

10 bdd, 100 go de traffic... pour 1.80 € / mois... A toi de voir, mais perso je trouve que cette offre c'est juste de l'arnaque wink


"As code is more often read than written it's really important to write clean code." - Franz
Twitter: @adaurfr
Mon fork de FluxBB: FeatherBB

Hors ligne

#8 28-09-2009 19:19:27

fanf73
Wik-wiki

Re : [Résolu] Recherche sans indexation

J'ai passé la variable "$lang_common['lang_multibyte']" à true et je peux utiliser la recherche sans indexation, ça utilise de base une condition en "like %%", plus gourmande en ressource machine mais ça n'a pas l'air de s'en ressentir pour le moment, je verrais à l'usage.

Peux-tu me donner un lien vers l'offre dont tu parles, ainsi que l'éventuelle taille maximum de base autorisée ? Parce qu'avoir 10 bdd de 100Mo chacune ne va pas résoudre mon problème, je doute pouvoir indexer les messages sur plusieurs bases différentes en fonction de la place.

Pour ce qui est de l'arnaque dont tu parles, je n'en vois nulle part n'ayant eu aucun soucis jusqu'à aujourd'hui avec mon offre d'hébergement.


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#9 28-09-2009 20:33:56

adaur
Membre

Re : [Résolu] Recherche sans indexation

Parce qu'avoir 10 bdd de 100Mo chacune ne va pas résoudre mon problème, je doute pouvoir indexer les messages sur plusieurs bases différentes en fonction de la place.

http://www.punbb.fr/forums/viewtopic.ph … 821#p80821

Ce n'est pas ce que Mpok fait ici ?

Cela me semble une bonne solution smile


"As code is more often read than written it's really important to write clean code." - Franz
Twitter: @adaurfr
Mon fork de FluxBB: FeatherBB

Hors ligne

#10 28-09-2009 20:44:23

fanf73
Wik-wiki

Re : [Résolu] Recherche sans indexation

Il utilise une base pour l'indexation et une autre pour le reste du forum, donc une fois la taille limite dépassée on se retrouve avec le même problème wink


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#11 28-09-2009 20:48:19

adaur
Membre

Re : [Résolu] Recherche sans indexation

fanf73 a écrit :

Il utilise une base pour l'indexation et une autre pour le reste du forum, donc une fois la taille limite dépassée on se retrouve avec le même problème wink

Ok, j'avais pas compris ça smile

Enfin, je pense qu'il est possible d'utiliser une table pour l'indexation et une autre pour le reste (j'avais compris ça comme ça au début), moyennent pas mal de modifications, mais je pense que tu es assez balèze pour les faire happy


"As code is more often read than written it's really important to write clean code." - Franz
Twitter: @adaurfr
Mon fork de FluxBB: FeatherBB

Hors ligne

Pied de page des forums