Je viré l'nidexation, et réindexé manuellement tout le site (refresh,
refrehs, refresh...)
Actuellement, tous les articles sont indexés, mais pas encore les
brèves. Aucune recherche n'aboutit, ie. les articles ne sortent pas sur
l'espace public, alors qu'ils srtoent sur l'espace privé.
'autre part, y aurait-il moyen de pndre une page rapide de réindex par
lots ? Genre ecrire/forcer-index.php3, avec un troupeu
d'articles+brtèves+mots à réindexer, avec une alerte qui dirait "si vous
avez une erreur, c'est normal. Faites un refresh". Non ?
Allez, je fournit même le code :
<?php
include ("ecrire/inc_version.php3");
$dir_ecrire = 'ecrire/';
include_local ("inc-cache.php3");
$max_index=20;
//
// Authentification
//
if ($HTTP_COOKIE_VARS['spip_session'] OR $PHP_AUTH_USER) {
include_ecrire ("inc_session.php3");
verifier_visiteur();
}
//
// Reindex manuelle
//
if (lire_meta('activer_moteur') == 'oui') {
for ($iter_index=0; $iter_index<$max_index; $iter_index++) {
$fichier_index = 'ecrire/data/.index';
if ($db_ok) {
include_ecrire("inc_index.php3");
$s = '';
if ($id_article AND !deja_indexe('article',
$id_article))
$s .= "article $id_article\n";
if ($id_auteur AND !deja_indexe('auteur', $id_auteur))
$s .= "auteur $id_auteur\n";
if ($id_breve AND !deja_indexe('breve', $id_breve))
$s .= "breve $id_breve\n";
if ($id_mot AND !deja_indexe('mot', $id_mot))
$s .= "mot $id_mot\n";
if ($id_rubrique AND !deja_indexe('rubrique',
$id_rubrique))
$s .= "rubrique $id_rubrique\n";
if ($s) {
$f = fopen($fichier_index, 'a');
fputs($f, $s);
fclose($f);
}
}
if (!$timeout AND $use_cache AND file_exists($fichier_index) AND
filesize($fichier_index)) {
include_ecrire("inc_connect.php3");
if ($db_ok) {
include_ecrire("inc_texte.php3");
include_ecrire("inc_filtres.php3");
include_ecrire("inc_index.php3");
$suite = file($fichier_index);
$s = $suite[0];
$f = fopen($fichier_index, 'w');
while (list(,$ligne) = each($suite))
if ($ligne <> $s)
fwrite($f, $ligne);
fclose($f);
$s = explode(' ', trim($s));
spip_log("indexation $s[0] $s[1]");
indexer_objet($s[0], $s[1], false);
$timeout = true;
}
}
}
}
?>
Pâle repompage de inc-public-global.php3