[spip-dev] Je n'arrive pas a faire indexer le site

Décidé à essayer le moteur de recherche, j'ai enclenché le moteur de
recherche dans l'espace privé sur un site qui a déjà une dizaine d'articles.
Ensuite, ayant lu http://www.spip.net/fr_article996.html qui explique les
deux façons de déclencher l'indexation, je consulte le site publique
intensivement - chaque page plusieurs fois pour m'assurer qu'elle se trouve
dans le cache.
Cela ne semble pas déclencher l'indexation.
Puis je modifie deux articles.
A ce moment, je vois apparaître dans le fichier \data\spip.log des lignes
comme:
    Oct 21 20:08:15 10.1.2.28 (pid 1496) demande indexation article 8
Mais la page de recherche ne donne toujours rien.
Et en regardant la base MySQL avec phpMyAdmin, je vois que les tableaux
spip_index_... sont tous vides et inchangés depuis leur création. Je pense
que c'est là que les critères de recherche devraient être stockés ?

Est-ce que quelqu'un voit ce que je devrai faire (ou ne pas faire) pour que
cela marche ?
(Tout cela tourne avec EasyPHP 1.7 et Spip 1.7b1)

merci, Paolo

Personnelement, j'ai préféré faire une page de réindexation et la placer dans "ecrire",

L'algo est un beu bourrin et brut, mais elle fonctionne :

<?php
include ("inc.php");
include("inc_connect.php");
// reindexation de tous les objets
include("inc_index.php");

$query = "select id_article from spip_articles";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_article($row['id_article']);$i++;}
echo "\n $i articles indexés";

$query = "select id_rubrique from spip_rubriques";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;

while($row=mysql_fetch_array($res)){
indexer_rubrique($row['id_rubrique']);$i++;}
echo "\n $i rubriques indexées";

/*
$query = "select id_document from spip_documents";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_document($row['id_document']);}
*/
$query = "select id_breve from spip_breves";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_breve($row['id_breve']);$i++;}
echo "\n $i breves indexées";

$query = "select id_syndic from spip_syndic";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_syndic($row['id_syndic']);$i++;}
echo "\n $i sites indexés";

?>

Paolo wrote:

Bonjour,
spip1.6

il y a une table spip_index_auteur, et la fonction indexer_auteur

il semble que la recherche ne fonctionne pas lorsque que l'on cherche un auteur.

Me trompe je ?

Merci
Philippe

Bonjour,
spip1.6

il y a une table spip_index_auteur, et la fonction indexer_auteur

il semble que la recherche ne fonctionne pas lorsque que l'on cherche un auteur.

je me trompe cela fonctionne, tout doit etre fait dans le squellette... a précisé dans la doc spip

desolé :frowning:

il semble que la recherche ne fonctionne pas lorsque que l'on cherche un
auteur.

Me trompe je ?

Non, effectivement il ne retrouve ni le nom, ni la bio de l'auteur, mais
uniquement son nom dans ses articles publiés
(en tout cas en 1.7b3)

Yves

Personnelement, j'ai préféré faire une page de réindexation et la placer
dans "ecrire",

L'algo est un beu bourrin et brut, mais elle fonctionne :

<?php
include ("inc.php");
include("inc_connect.php");
// reindexation de tous les objets
include("inc_index.php");

$query = "select id_article from spip_articles";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_article($row['id_article']);$i++;}
echo "\n $i articles indexés";

$query = "select id_rubrique from spip_rubriques";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;

while($row=mysql_fetch_array($res)){
indexer_rubrique($row['id_rubrique']);$i++;}
echo "\n $i rubriques indexées";

/*
$query = "select id_document from spip_documents";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_document($row['id_document']);}
*/
$query = "select id_breve from spip_breves";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_breve($row['id_breve']);$i++;}
echo "\n $i breves indexées";

$query = "select id_syndic from spip_syndic";
$res = mysql_query($query);
echo mysql_error()."\n"; $i=0;
while($row=mysql_fetch_array($res)){
indexer_syndic($row['id_syndic']);$i++;}
echo "\n $i sites indexés";

?>

Paolo wrote:

Décidé à essayer le moteur de recherche, j'ai enclenché le moteur de
recherche dans l'espace privé sur un site qui a déjà une dizaine

d'articles.

Ensuite, ayant lu Le moteur de recherche - SPIP qui explique les
deux façons de déclencher l'indexation, je consulte le site publique
intensivement - chaque page plusieurs fois pour m'assurer qu'elle se

trouve

dans le cache.
Cela ne semble pas déclencher l'indexation.
Puis je modifie deux articles.
A ce moment, je vois apparaître dans le fichier \data\spip.log des lignes
comme:
    Oct 21 20:08:15 10.1.2.28 (pid 1496) demande indexation article 8
Mais la page de recherche ne donne toujours rien.
Et en regardant la base MySQL avec phpMyAdmin, je vois que les tableaux
spip_index_... sont tous vides et inchangés depuis leur création. Je pense
que c'est là que les critères de recherche devraient être stockés ?
Est-ce que quelqu'un voit ce que je devrai faire (ou ne pas faire) pour

que

J'ai constaté ce problème, qui est apparement du à la variable $full
toujours sur FALSE dans la fonction indexer_objet du fichier
ecrire/inc_index.php3

J'avoue ne pas avoir eu le temps de rechercher le pourquoi mais ce code
fonctionne pour moi: (ligne 163 et suivantes)

case 'auteur':
    $query = "SELECT * FROM spip_auteurs WHERE id_auteur=$id_objet";
    $result = spip_query($query);
    while($row = spip_fetch_array($result)){
      indexer_chaine($row['nom'], 5);
      //if ($full) {
        indexer_chaine($row['bio'], 1);
      //}

Patrice

> Non, effectivement il ne retrouve ni le nom, ni la bio de l'auteur, mais
> uniquement son nom dans ses articles publiés
> (en tout cas en 1.7b3)

non en fait il trouve bien les auteurs, mais il faut faire une boucle AUTEURS (recherche)
et ca marche, version 1.6