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

Utilisation des thésaurus

SDX supporte l'utilisation de thésaurus au moment des requêtes de recherche mais aussi au moment de l'indexation. Nous allons ici décrire le support au moment de l'indexation. L'objectif de cette fonctionnalité est de permettre au développeur de demander à SDX d'injecter automatiquement des termes issus du thésaurus dans certaines champs. Cette injection peut être contrôlée de différentes manières, et son succès repose bien sûr sur la présence d'un thésaurus correctement déclaré et indexé pour l'application en cours.

Configuration du pipeline d'indexation

Le pipeline d'indexation doit inclure une étape supplémentaire (en général la dernière) pour que SDX puisse ajouter des termes du thésaurus. En effet, cette fonctionnalité est implémentée comme une transformation qui s'effectue sur le format de sortie du pipeline, en conservant toutes les informations et en ajoutant, si nécessaire, d'autres champs.

L'exemple suivant illustre comment configurer un pipeline dont l'indexation sera assurée par une transformation XSLT suivie du mécanisme d'ajout de termes de SDX :

  <sdx:pipeline>
    <sdx:transformation id="step1" type="XSLT" src="index.xsl"/>
    <sdx:transformation id="thes" type="fr.gouv.culture.sdx.pipeline.FieldExpansionTransformation" th="thes"/>
  </sdx:pipeline>

Dans cet exemple, la première transformation est habituelle. La seconde est effectuée par une transformation implémentée par une classe SDX spécifiquement conçue pour cela. L'attribut th est facultatif, il sert à préciser le thésaurus (par son identifiant) qui sera utilisé pour trouver des termes ; nous verrons qu'il s'agit seulement d'une valeur par défaut et qu'il est possible de le spécifier pendant le processus d'indexation comme tel.

L'ajout de termes

L'ajout de termes doit être demandé dans une transformation préalable à celle effectuée par la classe FieldExpansionTransformation, en utilisant des éléments spécifiques à cette tâche. Nous allons commencer par un exemple pour montrer le fonctionnement général :

  <sdx:document id="doc01">
    <sdx:field name="sujet">
      Eglise
      <sdx:expandField>
        <sdx:relation type="bt" depth="2" th="thes"/>
      </sdx:expandField>
    </sdx:field>
  </sdx:document>

Cet exemple illustre un cas où l'indexation identifie que le terme Eglise doit être inclus dans un champ sujet, mais que SDX doit utilisé le thésaurus thes et inclure les deux termes génériques (broader term) de ce terme. Ainsi, si le téhsaurus a une hiérarchie de type Patrimoine => Architecture => Eglise, alors les termes Patrimoine et Architecture seront aussi mis dans autant d'autres occurrences du champ sujet.

Dans cet exemple, l'attribut th est optionnel, et il indique l'identifiant du thésaurus à utiliser. S'il est absent, le thésaurus par défaut, spécifié dans le pipeline d'indexation, sera utilisé. Les types de relation sont celles qui sont définies pour les thésaurus dans SDX : bt pour les termes génériques, nt pour les termes spécifiques, rt pour les termes associés, et enfin et et pe pour les termes équivalents ou partiellement équivalents dans une autre langue.

L'utilisation de ces deux dernières relations exige un nouvel attribut, lang, pour indiquer dans quelle langue il faut aller chercher les termes équivalents ou partiellement équivalents.



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