|
Bonjour,
Je suis Webmestre d’un site SPIP (SPIP 1.9.2d) qui possède de nombreux articles. Mon problème se situe au niveau de la recherche.
En effet, il arrive que cette dernière ne donne aucun résultat alors que le mot spéficifé est bien présent dans au moins un article.
En regardant de plus près, ce problème semble survenir lorsque le mot recherché est "trop" présent.
La requete SQL générée est d’une longueur assez incroyable et MySQL me renvoit cette erreur :
Thread stack overrun: 115280 bytes used of a 126976 byte stack, and 12000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack.
Voici un bout de la requête pour vous donner une idée de son ampleur :
(articles.id_article IN (4263,3571,3456,3557,689,2846,493,1982,2698,3266,3151,3323,
3343,4145,3578,922,2465,.....)
Et ca continue ainsi sur une très grande distance.
Je peine à trouver une solution.
J’ai tout d’abord pensé à augmenter la taille de la variable MySQL "Tread stack", mais en toute logique, cela ne fera que repousser l’erreur.
Je dois pouvoir être capable d’écrire un moteur de recherche en PHP qui ne me renverra pas une requète de cette taille ; mais si je peux l’éviter, ce serait mieux. :)
Je fais donc appel à ce Forum, si certains ont eu le même type d’erreur ou ont une idée d’où cela peut venir, qu’ils n’hésitent pas.
Tout avis étant le bienvenu :)
|