Télécharger
    Installer
    Présentation
    Configuration
    Indexation
       Pipeline
       Original et usage
      +Paramètres <-
       Format de sortie
       Champs SDX
       Documents attachés
       Fragmentation
       Thésaurus
    Recherche
    OAI
    Javadoc
    Référence API-XSP
    Migration
    Schemas
    Performances


SDX

Paramètres d'indexation

L'indexation d'un document XML se fait à l'aide d'un pipeline d'indexation ; comme tout pipeline en SDX, celui-ci peut recevoir des paramètres. Ces paramètres sont transférés à toutes les transformations du pipeline, sans aucune distinction. Ces transformations peuvent choisir ou non d'utiliser les paramètres. Nous allons définir ici les paramètres que SDX fournit à tous les pipelines d'indexation, de même que la procédure à suivre pour fournir vos propres paramètres d'indexation.

Paramètres SDX

Les paramètres suivants sont fournis par SDX au pipeline d'indexation, lors de toute opération d'indexation.

docUrl

L'adresse URL absolue du document indexé, lorsqu'une telle adresse existe. Ce sera le cas lorsque le document est fourni à SDX sous la forme d'un fichier ou d'une adresse URL ; sinon, ce paramètre ne sera pas renseigné, par exemple lorsque le document a été fourni à SDX sous la forme d'un objet DOM.

sdxUser

Le code de l'utilisateur SDX qui a déclenché le processus d'indexation. Ce paramètre est facultatif, car il est possible qu'aucun utilisateur n'ait été spécifié lors du lancement du processus, par exemple si c'est un appel direct à l'API Java. Lorsqu'on passe par l'API XSP, SDX renseigne toujours l'utilisateur et ce champ est donc toujours présent.

sdxDate

La date actuelle complète (avec journée, heure et minute). A noter que si un lot de documents est envoyé à l'indexation, la date est modifié au démarrage de l'indexation de chaque document.

Le format de la date contenue dans ce paramètre dépend de la machine virtuelle Java et de sa configuration. Techniquement, la date est obtenue avec cet appel Java : java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.FULL, java.text.DateFormat.FULL).format(new java.util.Date()). C'est le locale système qui déterminera le format exact utilisé. Voici un exemple : vendredi 2 mai 2003 08 h 14 CEST. Il est préférable d'utiliser ce paramètre dans le cas où la date doit être affichée, pas pour être exploitée par l'informatique.

sdxISO8601Date

La date actuelle complète (avec journée, heure et minute). A noter que si un lot de documents est envoyé à l'indexation, la date est modifiée au démarrage de l'indexation de chaque document.

Le format de la date contenue dans ce paramètre respecte la norme ISO 8601 : yyyy-MM-dd'T'HH:mm:ssz, par exemple 2003-05-02T08:14:00CEST.

Comment utiliser ces paramètres ?

Toutes les transformations qui font partie d'un pipeline d'indexation ont accès à ces informations. L'accès aux paramètres va varier selon que la transformation est une XSLT ou une classe Java (les deux mécanismes supportés par SDX).

Transformations XSLT

Pour bénéficier de ces paramètres, vous devez les déclarer comme des paramètres XSLT de premier niveau, de cette façon :

<xsl:stylesheet>
  <xsl:param name="docUrl"/>
  <xsl:param name="sdxUser"/>
  <xsl:param name="sdxDate"/>
  <xsl:param name="sdxISO8601Date"/>
  ...
</xsl:stylesheet>

Par la suite, vous pouvez les utiliser où vous voulez dans votre transformation en les appelant comme des variables, par exemple ainsi :

  <xsl:template match="doc">
    <xsl:message>Début de l'indexation du document
       <xsl:value-of select="@id"/> à <xsl:value-of select="$sdxDate"/>
       par <xsl:value-of select="$sdxUser"/>
    </xsl:message>
  </xsl:template>

Classes Java

Une transformation d'un pipeline peut être implémentée par une classe Java qui implémente l'interface fr.gouv.culture.sdx.pipeline.Transformation. Cette interface a une méthode setParameters(org.apache.avalon.framework.parameters.Parameters) qui sera utilisée par SDX pour passer les paramètres. La classe qui implémente cette interface n'a plus qu'à gérer correctement les paramètres en interne.

A noter que pour simplifier cette gestion des paramètres, il est conseillé de créer une classe qui étend fr.gouv.culture.sdx.pipeline.AbstractTransformation, car cette classe abstraite implémente déjà la gestion des paramètres et met à disposition des classes qui étendent une variable protégée parameters qui les contient.



Auteur : Martin Sévigny ( AJLSM ) - 2003-05-14