SPIP-Contrib

SPIP-Contrib

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

288 Plugins, 197 contribs sur SPIP-Zone, 273 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

  • Conversion des brèves en articles

    19 mai 2011 – 41 commentaires

    Avec l’évolution de SPIP, les brèves deviennent un objet historique, dont le maintien s’avère parfois inadapté. Il peut donc se révéler utile de convertir les brèves en articles, c’est ce que fait ce plugin. La conversion des brèves en articles Ce (...)

  • ScolaSPIP 4

    19 janvier 2016 – 177 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)

  • Mise à jour automatique des plugins

    5 octobre 2009 – 149 commentaires

    Une nouvelle lame du Couteau Suisse permet de visualiser les plugins nécessitant une mise à jour, tout comme SPIP lui-même ! Présentation Rendons à César ce qui est à César, voici un extrait de la présentation du Couteau Suisse pour sa lame « Mise (...)

  • ScolaSPIP 3

    21 mai 2012 – 443 commentaires

    Un plugin-squelette personnalisable pour sites Web d’établissements scolaires

  • Présentation : Organisation et décisions dans une optique autogérée et non-argentée

    11 mai – commentaires

    Cette présentation a été faite durant la rencontre SPIP à Toulouse en mai 2017. Elle propose des pistes de solutions pour avancer sur les chantiers compliqués et bloquants, notamment par la rédaction d’une charte/mode d’emploi pour la communauté et (...)

Ça spipe par là