SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

245 visiteurs en ce moment

[18 commentaires]

Plugin Recherche étendue

samedi 12 mai 2007, par NicolasR

Toutes les versions de cet article : [français] [italiano]

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati

Propose des outils pour l’indexation de la recherche de votre site

Nota SPIP-Contrib : une présentation minimaliste, et certainement à compléter, qui est surtout destinée à référencer cette contribution. N’hésitez pas à apporter votre pierre à cette documentation, par exemple via le forum de cet article.

Présentation

Une question revient souvent sur la liste des utilisateurs : « J’ai activé la recherche, mais le moteur ne me donne pas de réponse (ou des réponses insuffisantes). » Pour y répondre une petite digression est nécessaire.

Le moteur de recherche de SPIP pour la partie publique [1] utilise une table d’indexation (« spip_index », plus d’explications voir les liens plus bas). Pour éviter une surcharge de calcul, l’analyse et le remplissage de cette table (« l’indexation » du site), est réalisée en tâche de fond lors des visites du site. La conséquence est que si vos pages sont peu visitées (site jeune, site en local, nouvel article, intranet, etc.), alors la table d’indexation se remplit trop lentement, et votre recherche publique renvoit des résultats incomplets.

Le plugin « Recherche étendue » permet de gérer ce problème, notamment pour forcer manuellement l’indexation de votre base.

Installation

Récupérer le zip du plugin sur l’espace de téléchargement de la Zone : http://files.spip.org/spip-zone/ [2]. L’installation se déroule ensuite comme pour tous les autres plugins, cf. http://www.spip.net/fr_article3396.html

Utilisation

Dans l’administration de votre site allez au menu « A suivre », vous obtiendrez les sous-menus « Gestion de l’indexation » et « Dictionnaire indexé ». Les fonctions disponibles sont très parlantes.

Un truc pour la réindexation

Lorsque vous forcez l’indexation de votre site avec la commande /?exec=admin_index>Relancer l'indexation du site sans purger les données, vous obtenez une url du type suivant : http://www.spip-contrib.net/ecrire/?exec=admin_index&forcer_indexation=20. Vos données (articles, forums, auteurs, etc ...) sont donc indexées par paquets de 20, et à chaque fois il faut relancer manuellement, ce qui peut être long si votre site est un tant soit peu peu rempli.

Un moyen simple d’alléger cette tâche, est de remplacer, directement dans l’url du navigateur, le 20 de « forcer_indexation=20 » par un nombre plus important (100 ou plus), lequel est à trouver par tâtonnement selon les possibilités du moment de votre serveur. L’intérêt est que l’indexation travaille ainsi en tâche de fond (sans pour autant aller plus vite d’ailleurs, bien au contraire) et que vous pouvez faire autre chose pendant ce temps.

A propos des sites mutualisés

Ce système provoque des calculs lourds et nombreux, ce qui fait qu’il est très mal vu de l’activer et d’en abuser sur un site mutualisé : vous risquez alors de plomber les performances du serveur pour l’ensemble des autres sites hébergés.

Pour en savoir plus sur la recherche de SPIP

- Le moteur de recherche, l’article « officiel » sur spip.net
- Moteur de recherche - tutorial, un article de novembre 2004 qui date un peu car la recherche de SPIP a évolué depuis, mais cela donne des pistes

Auteurs et historique du plugin

Il s’agit d’une œuvre collective, adaptant une page d’administration existante SPIP 1.9 (et les plugins), cf le fichier « plugin.xml » :
- Cédric pour l’adaptation en plugin
- pdepaepe et Nicolas Steinmetz pour google_like
- Fil pour le panneau « admin_index » d’origine

L’auteur du présent article n’a fait que copier/coller divers éléments. Il n’y a pas de SAD (Service Après Don) à attendre, mais que cela ne vous empêche pas d’échanger vos expériences via ce forum ;-)

Notes

[1] Pour la partie privée, censée être moins sollicitée, le mécanisme (donc le comportement) est différent : SPIP utilise les mécanismes de recherche de MySQL pour fouiller directement dans la base

[2] En cas de problème sur ce lien de téléchargement voir les sites miroirs

Retour en haut de la page

18 Messages de forum

Voir toute la discussion

1 | 2

  • Répondre à ce message

    15 septembre 15:59 , par Jean-Pierre

    Bonjour,

    Merci pour ce plugin bien précieux en certaines circonstances. J’ai néanmoins un soucis.

    J’ai sauvegardé ma base de prod dans une base de test (via espace privé maintenance du site) et j’ai effectivement constaté la "perte en ligne" concernant les index du moteur de recherche interne.
    J’ai alors utilisé recherche etendue (v0.1) pour réindexer et apparemment tout s’est bien déroulé (en plusieurs passes jusqu’au bout), avec option "forcer l’indexation du site". Disposant alors de deux bases aux contenus strictement identiques (vérifié), lorsque je lance la meme chaine recherchée sur les 2 environnements, j’ai beaucoup moins de pages trouvées que sur la base d’origine (et ce pour différents mots employés).

    Pourtant, lorsque je vais voir les 2 bases MySQL, les tables spip_index et spip_index_dico sont étrangement plus volumineuses (nb d’enregistrements) dans la base ayant eu la réindexation appliquée à l’aide du plugin recherche etendue. On est donc tenté de conclure que la réindexation via le plugin est partielle comparée à l’indexation standard qui s’opère en tache de fond à mesure de la vie courante du site et des visites.

    L’article de référence Le moteur de recherche - SPIP http://www.spip.net/fr_article996.html ne dit pas grand chose sur ce sujet.

    Quelqu’un peut-il m’éclairer sur les 2 mécaniques d’indexation, et la marche à suivre pour reconstruire une indexation valable ? Merci d’avance.

    NB : constatant tout ceci, j’ai lancé (c’est peut-être ici un peu l’aventure) purger les tables d’indexation puis à nouveau forcer l’indexation mais le résultat est comparable à la manip initiale "forcer l’indexation". Suis sous Spip 1.9.2d, Recherche Etendue v0.1.

  • Répondre à ce message

    5 septembre 11:32 , par Regis92

    Bonjour,

    Quand j’installe et j’active ce plugin sur Spip 1.9.2d, mon site disparait ... tout simplement !! (Page blanche)

  • Répondre à ce message

    27 mai 13:43 , par Adedib

    Bonjour,

    J’avais la même erreur. Il me manquait le champ idx dans la table spip_articles. Une fois le champ créé et renseigné à "oui" pour les champs à indexer, tout fonctionne.

  • Répondre à ce message

    11 février 09:14 , par jacques

    bonjour je suis sur une version 1.9.2c j’ai installé ce plug in mais il n’indexe pas les articles ... pas de barres vertes .. quand je demande forcer l’indexation j’obtiens 20/281 ... et c’est tout et à la place des barres vertes j’ai le texte suivant : "indexation de la table non configurée" que puis j faire pour relancer cette indexation ?

    jacques

  • Répondre à ce message

    9 janvier 14:22 , par martin

    Même chose pour moi, avec un spip 1.9.2c

  • Répondre à ce message

    9 novembre 2007 23:48 , par Yoyote

    bonjour, je suis novice dans spip et je viens de découvrir ce super plugin.

    Je l’ai installé, mais je ne sais plus exactement ce que je dois faire pour que ça marche. Merci d’avance pour votre aide. J’utilise spip 1.9.2c

  • Répondre à ce message

    30 août 2007 18:05 , par SPQR

    Bonjour,

    Est-il normal qu’en cas de restauration sur un PC1 d’une base sauvegardée sur un PC 2, l’indexation soit perdue ?

    Sinon il est super ce plugin....

     :-))

  • Répondre à ce message

    30 août 2007 11:40 , par Stef

    Hello

    Est-il possible d’afficher les mots qui indexent un document ? (les mots qui si ils sont tapé dans un champ de recherche, viendrait à sélectionner le document)

  • Répondre à ce message

    25 août 2007 13:44 , par veric

    j’obtiens une erreur en forçant l’indexation :

    Fatal error : array_keys() [function.array-keys] : The first argument should be an array in /mnt/123/sdc/d/6/dapertutto/spip1/ecrire/inc/indexation.php on line 465

    une idée ? merci !

  • Répondre à ce message

    13 août 2007 20:52 , par cedric

    Merci pour ce plugin !

    Lors de la mise à jour de Spip (1.8 -> 1.9.2.), j’ai perdu toute l’indexation précédant la mise à jour ! En quelques clics j’ai pu réindexer tout le site en quelques clics !

    EXCELLENT !

     :)

1 | 2

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0