SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 80 visiteurs en ce moment

Accueil > Navigation > Recherche > Indexer > Indexer : Indexation

Indexer : Indexation

24 janvier 2017 – par Fil, Matthieu Marcillaud, RastaPopoulos, spip Maïeul

3 votes

Introduction

Cette page vise à documenter les paramètres de l’indexation dans le plugin Indexer, qui exploite le moteur de recherche Sphinx.

Schéma de base

Sphinx permet de configurer son indexation comme on le souhaite, mais le plugin Indexer pour SPIP fait des choix particuliers — relativement génériques et extensibles, qui permettent aux développeur·se·s d’avoir un socle commun. C’est le schéma de base suivant :

  • title : le titre de document
  • summary : résumé (le plus souvent les premières lignes du contenu, ou le résultat de #INTRODUCTION)
  • content : le contenu intégral du texte, y compris les champs chapo, texte, ps, et le titre des mots-clés
  • date : la date de rédaction antérieure si elle existe, sinon la date de publication, sinon la date d’indexation
  • uri : l’adresse de la page
  • properties
  • signature

properties est un objet au format JSON, comportant les éléments suivants :

  • authors : liste des auteurs de l’article
  • tags : liste des mots clés de l’article
  • objet : 'article' (type d’objet SPIP)
  • id_objet : identifiant de l’objet
  • lang : langue de l’objet.

signature : est une signature calculée automatiquement à partir des contenus envoyés et du secret du site. Cette signature pourrait être recalculée pour vérifier que les données dans Sphinx n’ont pas été altérées.

Pipeline indexer_document

Les choix faits dans ce plugin correspondent à une idée de "ce qu’il faut faire dans le cas assez général", mais ça ne convient pas forcément à tous les sites. Vous pouvez bien sûr participer au développement de ce plugin pour le faire évoluer. Mais si votre cas est très particulier ou en contradiction avec nos choix, il est aussi possible d’utiliser le pipeline indexer_document pour modifier les données envoyées à Sphinx.

Si par exemple vous ajoutez une propriété note, il suffira dans ce pipeline d’indiquer :
$flux['data']->properties['note'] = calculer_la_note_de_mon_article($flux['data']->properties['id_objet']);

La note sera alors disponible sous forme de filtre et de facette (à condition bien sûr de modifier la Boucle SPHINX à cet effet).

Encore une fois, si le besoin d’indexer des champs supplémentaires s’avère récurrent, il vaut mieux venir modifier le plugin Indexer de façon à ce que l’indexation de champs supplémentaires se fasse simplement par l’ajout d’une define() ou d’une case à cocher dans l’espace privé.

Indexation par groupe de mots

Si l’on a par exemple des mots-clés "pays" et des mots-clés "thèmes", on veut pouvoir afficher des facettes de pays et de thèmes séparément, plutôt qu’un seul groupe de facettes "tags".

Pour cela les mots sont présents à la fois « tout mélangés » dans la propriété properties.tag, mais aussi organisés par groupes dans properties.tagsbygroups (basés sur l’id_groupe, identifiant numérique des groupes de mots), et dans properties.tagsbytype (basés sur le titre des groupes de mots).

Indexation des langues et liens de traduction

Les traductions d’un article sont disponibles dans properties.trad, qui fournit une liste de traductions (à l’exception de l’objet lui-même). properties.tradlangs contient pour sa part uniquement la liste des langues dans lesquelles l’article est traduit, ce qui permet de filtrer sur « les articles en français dont il existe une traduction en anglais » : avec &language=fr&langtrads=en.

Pour des raisons de simplicité, ces liens sont indexés indépendamment du statut des articles traduits, si vous les exploitez de façon massive il faut donc faire un peu attention à la manière dont ils sont restitués dans les boucles.

Rubriques et Mots-clés arborescents

Le plugin Indexer est utilisé sur des sites dont le volume est assez important, et qui utilisent plusieurs sites SPIP, dotés d’une arborescence similaire en terme de titres de rubriques et de mots-clés, mais pas forcément selon les mêmes identifiants (id_rubrique). C’est pourquoi l’indexation prévoit d’enregistrer les mots sous forme de "tags" très simples (titre du mot), ainsi que sous la forme d’une empreinte md5 complexe de toute l’aborescence, qui permet de retrouver une même arborescence à travers diverses indexations.

Si le plugin "groupes de mots arborescents" est présent, les arborescences de mots-clés sont aussi pris en compte.

Indexation de la date

Pour des raisons techniques expliquées ici la date indexée doit être comprise entre le 1er janvier 1970 et 2064. On peut inclure des dates antérieures (de 1901 à 1970) en faisant très attention. Si l’on veut avoir une plage de dates sans limitations il va falloir encore réfléchir à la méthode.

Dernière modification de cette page le 7 février 2017

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Diaporama responsive avec Nivo Slider

    15 septembre 2015 – commentaires

    Un diaporama responsive basé sur « Nivoslider ». Introduction Cette contribution est une adaptation liée à Nivo-Slider (http://contrib.spip.net/Nivo-Slider-3747). Ce dernier plugin disponible n’étant pas responsive, nous l’avons refait une adaptation (...)

  • Mon site affiche une page blanche ou je ne peux plus accèder à l’espace privé

    7 février 2008 – 32 commentaires

    Au secours ! « Tout à coup » votre site devient inutilisable ou inaccessible ! Comment faire ? Pourquoi ? Par où commencer ? Sans pouvoir couvrir tous les cas, cet article va essayer de vous guider rapidement vers la (...)

  • Polyhiérarchie

    14 juillet 2009 – 166 commentaires

    Ce plugin permet de rattacher un article ou une rubrique à plusieurs rubriques parentes.

  • Étiquettes

    18 avril 2008 – 80 commentaires

    Générer des formulaires pour ajouter facilement des mots-clés à tout et n’importe quoi.

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2278 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)