Plugin Recherche étendue

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

[1Pour 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

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

Discussion

17 discussions

  • 2

    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

  • 1

    Bonjour,

    comme la plupart des gens j’ai installé le plugin parce qu’en ligne quand je lance des recherches avec le moteur de spip rien ne s’affiche.Mais dans tiut ce que j’ai lu je vois pas la démarche à suivre. Quoi mettre pour appeller le fichier ? est ce toujours #FORMULAIRE_RECHERCHE ? Quel fichier modifier ? etc...

    Merci pour vos réponses.

    • Bonjour,

      moi aussi j’ai le même problème. Quelqu’un peut nous aider ?

      Merci

    Répondre à ce message

  • Voilà ! Je vais bientôt passer mon second site en SPIP 2.0.1. Je n’utiliserais donc plus ce Plugin qui m’a bien rendu service pendant un peu plus d’un an.

    Merci pour votre travail et pour votre aide

    Répondre à ce message

  • 1

    Est ce que ça arrive que des gens répondent aux questions ?

    Après on se demande pourquoi on préfère Dotclear...

    • Le plugin te donne lui même la réponse : non il n’est pas compatible SPIP 2.0

      Une des raisons principales est qu’il n’y a plus d’indexation dans SPIP 2.0, mais une recherche full text sql directe, ce qui rend obsolète la plupart des fonctionnalités des plugins

    Répondre à ce message

  • Hello,

    Le plugin m’indique

    * Impossible d’activer le plugin recherche_etendue
    * Nécessite SPIP en version [ ;1.925) minimum.

    Est-il possible de forcer son activation ? sera-t-il compatible en V2 ?

    Merci. :)

    Répondre à ce message

  • François Daniel Giezendanner

    Bonjour,

    Ce plugin effectue-t-il une recherche plein texte dans les documents joints aux articles et aux rubriques ?

    Cordialement

    FDG

    Répondre à ce message

  • Bonjour,
    Je suis peut-être retardataire sur le sujet, mais je ne trouve pas de réponse à ce problème avec le plugin. Pour info, je remets le message d’erreur, en précisant que mon hébergeur est Free. Cela a peut-être son importance ??

    Fatal error : array_keys() [function.array-keys] : The first argument should be an array in /mnt/102/sdb/8/0/kintam/ecrire/inc/indexation.php on line 463

    Merci à ceux qui pourraient m’aider à le résoudre.

    Répondre à ce message

  • 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

  • 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

  • 2

    Bonjour,

    Après installation de la dernière version du plugin (19/04/2007) sur un SPIP 1.9.2a (8878), voilà le message d’erreur affiché en lançant la commande « dictionnaire indexé » :

    Fatal error : Cannot redeclare taille_image() (previously declared in /home/users2/c/cliospqr/www/ecrire/inc/filtres.php:178) in /home/users2/c/cliospqr/www/ecrire/inc/logos.php on line 286

    Une idée chef ?

    • all securite

      j’obtiens le même message d’erreur que toi

    • Il suffit de supprimer ecrire/inc/logos.php (ou le renommer en logos.php.old).
      Et le problème disparait !

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom