SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 238 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
Chargement en cours...

Ça discute par ici

  • Champs Extras 3

    16 janvier 2012 – 563 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 241 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Moulinette

    17 juillet 2015 – 34 commentaires

    Un squelette qui monte et qui descend ! Moulinette est un squelette basé sur le thème Grayscale (documentation) pour Bootstrap 3. Le type de site attendu est un site en une seule page : une rubrique avec quelques articles, des titres courts, des (...)

  • Formulaire de contact avancé

    23 mars 2009 – 1372 commentaires

    Un formulaire de contact configurable, avec de multiples options.

  • Plugin « Agrandir la largeur de page »

    3 août 2015 – 21 commentaires

    Ce plugin permet d’agrandir la largeur de la page dans l’espace privé de SPIP. Vous pourrez personnaliser cette largeur si besoin. Préambule Dans l’espace privé de SPIP, lorsque nous sommes connectés, nous pouvons choisir dans nos préférences (...)