SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 295 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 ?
  • [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 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

  • Facteur

    21 janvier 2010 – 383 commentaires

    Un plugin pour regrouper toutes les fonctions avancées autour de l’envoi de courriels. Introduction SPIP propose une fonction générique envoyer_mail() pour envoyer un courriel. Elle est assez simple d’utilisation mais peut paraître limitée (...)

  • Albums 3

    8 août 2014 – 224 commentaires

    Le plugin « Albums » évolue dans une version 3 pour SPIP 3. Avant d’effectuer une mise à jour depuis la version 1 ou 2, consultez les notes sur la rétro-compatibilité. Les modèles, notamment, on reçut quelques changements pour la bonne cause. En (...)

  • ciag : plugin « Groupes d’auteurs »

    30 novembre 2011 – 22 commentaires

    Ce plugin facilite l’affectation des auteurs aux rubriques, via des groupes d’auteurs. Il offre également des vues globales des affectations de rubriques aux auteurs. Les objectifs de ce plugin Le premier objectif est de faciliter (...)

  • Tickets, suivi de bugs

    28 novembre 2008 – 45 commentaires

    Tickets est un outil de suivi de bugs directement intégré à l’espace privé de SPIP. Il est conçu pour faciliter la phase de développement du site (notamment les squelettes du site public). Tickets est un système simple de suivi de bugs directement (...)

  • Titre de logo v2

    23 mai 2014 – 17 commentaires

    La version 2 du plugin Titre de logo reprend les mêmes fonctions que la v1 mais étend le titre et le descriptif aux logos de tout objet éditorial de SPIP. Vous pouvez toujours vous référer à l’article de la version 1 pour retrouver les fonctions (...)