Rendre la recherche plus rapide
Publi� le 6 juin 2006

La fonction recherche dans SPIP s'avère efficace par rapport aux solutions de recherche externes (yahoo, logiciels serveur, etc.). Seulement, elle a un inconvénient de taille : elle ne peut pas être gérée par le cache de SPIP. Si on affiche le fichier recherche.php3 :


$fond
= "recherche";
$delais = 0;

on le vérifie car le délais vaut 0 (pas de cache). Cela s'explique car on souhaite que la page de résultat de la recherche soit raffraichie à chaque recherche (logique). Cela peut être très embetant pour les sites à fort traffic. C'est pourquoi, je vous propose une petite évolution qui vous permettra d'utiliser un système de cache externe : jpcache. Pour ce faire, il vous suffit de l'installer ou vous voulez dans votre arborescence ensuite, remplacez le fichier recherche.php3 par le code suivant :


<?php
$fond 
"recherche";
$delais 0;

if (!
$recalcul)
{
    
$dont_compress true;
    
$cachetimeout 24 3600;
    
//mettre le chemin complet d'accès au fichier jpcache.php
    
@require "includes/php/jpcache/jpcache.php";
}

include (
"inc-public.php3");
?>

Puis, d'ajouter dans le fichier ecrire/mes_options.php3 :


$auto_compress
= true;
if (
$dont_compress)
    
$auto_compress = false;

pour désactiver la compression, si besoin [1].

Suite à cette modif, le page de recherche sera mise en cache pour 24 * 3600 = 1 journée. L'affichage est très rapide ! comme on peut le vérifier sur cette page.


[1] sinon la page est compressée 2 x