Télécharger
    Installer
    Présentation
    Configuration
    Indexation
    Recherche
    OAI
    Référence API-XSP
       Pages XSP
       Paramètres SDX
       Vue d'ensemble
          Structure
          Paramètres et flux
          Identification
          Droits
          Localisation
          Pipelines
          Indexation
          Recherche
            +Index <-
             Requêtes
             Paramètres
             Ajuster
             Thesaurus
             Résultats
          Documents
       Liste alphabétique
    Migration
    Schemas
    Performances


SDX

Contenu d'index

Liste des actions décrites dans cette page :

Si cette section ne se trouve pas dans le chapitre indexation, c'est que les actions décrites ici sont en réalité des requêtes exécutées dans les index d'une base de document.

sdx:terms

sdx:terms permet de retirer la liste des termes d'un index. Il s'agit donc d'une requête à part entière.

Si sdx:terms peut s'employer tel quel dans une page XSP, elle admet un certain nombre de paramètres permettant d'affiner la requête. De même qu'il est possible de retirer l'ensemble des termes d'un index, on peut ainsi choisir de filtrer les résultats, d'affiner la recherche.

Note

Attention, depuis la version 2.2, le résultat d'une requête sur un index a changé : le nom du champ interrogé se situe désormais dans l'attribut field de l'élément sdx:terms.

Pour des raisons de compatibilité avec les applications existantes, l'attribut field se trouve également dans les sdx:term, fils de sdx:terms. Il convient donc de ne pas en ternir compte pour les applications SDX développées à partir de la version 2.2 (cf. illustration donnée dans l'exemple suivant).

Code implémentant cette actionsdx-actions.xsl
Contexte d'utilisationN'importe où dans une sdx:page. (FIXME)
Contenu éventuelAucun. (FIXME)

Tableau 1. Paramètres spécifiques

NomDescription 
fieldIdentifie le champ que l'on désire interroger.Obligatoire
fDépréciéIdem.Obligatoire
valueIdentifie la valeur que l'on souhaite retrouver. Utilisé pour le cas où l'on cherche à filtrer la requête.Facultatif
vDépréciéIdem.Facultatif
qidIdentifiant de la requête (TODO : expliquer).CHECK
pageIdentifiant de la page.CHECK
pDépréciéIdentifiant de la page.CHECK

Tableau 2. Paramètres communs

NomDescriptionElément correspondant 
appIdentifie l'application dans laquelle on souhaite effectuer l'interrogation. Par défaut, il s'agit de l'application courante.sdx:appFacultatif
baseIdentifie la base de documents dans laquelle on souhaite effectuer l'interrogation. Si non spécifiée, il s'agit de la base de documents par défaut.sdx:baseFacultatif
repoIdentifie l'entrepôt dans lequel on souhaite effectuer l'interrogation. Si non spécifié, il s'agit de l'entrepôt par défaut.sdx:repoFacultatif
hppDéfinit le nombre de résultats souhaités par page. Par défaut, le nombre est fixé à 20.sdx:hppFacultatif

Exemple 1. Lister l'ensemble des termes d'un index

Dans l'exemple suivant, on demande la liste des termes d'un index. Celui-ci n'est pas spécifié directement dans la page. Il est passé dynamiquement dans l'URL : {serveur sdx}/sdx/sdxtest/terms.xsp?champ=commune&base=docs

<sdx:page>
  <sdx:terms fieldParam="champ"/>
</sdx:page>

Le résultat de la requête (i.e. le XML virtuel généré par cette page XSP) :

...
  <sdx:terms field="commune" qid="q4" page="1" hpp="20" pages="28" nb="554"
    start="1"
    end="20"
    id="q4"
    currentPage="1"
    nbPages="28">

    <sdx:term no="1" value="Rennes" escapedValue="Rennes" field="commune"
      docs="1"
      id="F1980199800001"
      base="docs"
      app="fr.culture.sdx.adfi"
      docId="F1980199800001"
      docFreq="1"/>

    <sdx:term no="2" value="Nantes" escapedValue="Nantes" field="commune"
      docs="3"
      docFreq="3"/>
    ...
  </sdx:terms>
...

Les résultats sont présentés dans un élément sdx:terms portant plusieurs informations : le nom du champ interrogé, l'identifiant de la requête (qid), le numéro de la page courante (page et currentPage), le nombre de résultats par page (hpp), le nombre de pages contenant des résultats (pages et nbPages), le nombre total de résultats (nb), le numéro du premier résultat (start), celui du dernier (end) dans la page.

Chacun des résultats est présenté dans un élément sdx:term. Dans l'exemple qui nous intéresse, le premier résultat identifie un seul document localisé sur la commune de Rennes (docFreq="1"). L'identifiant de ce document (id et docId) permettra de l'afficher à la demande (voir le chapitre sur l'affichage de document).

Le second résultat (no="2") identifie trois documents localisés sur la commune de Nantes. Leur identifiant ne sont pas donnés dans le résultat ; il faudra effectuer une nouvelle interrogation afin de dresser la liste de ces documents (voir la section sur l'exécution d'une requête : sdx:executeFieldQuery).

Attention, des modifications ont été apportées dans le résultat d'une requête avec sdx:terms depuis la version 2.2 de SDX, comme indiqué dans la note précédente.

Exemple 2. Filtrer une liste de termes d'un index

Dans l'exemple suivant, on demande la liste complète des communes dont le nom commence par la lettre "A" :

<sdx:page>
  <sdx:terms field="commune" value="a*" hpp="-1">
    <sdx:fallback>
      <xsl:message type="echec_requete"/>
    </sdx:fallback>
  </sdx:terms>
</sdx:page>

Exemple 3. Retourne le nombre de documents

Dans l'exemple suivant, on cherche à retourner le nombre de documents indexés dans une base de documents :

<sdx:page>
  <sdx:terms
    field="sdxall"
    app="fr.sdx.test"
    base="sdxworld">
</sdx:page>

On obtient alors le résultat suivant :

<sdx:document ...>
  <sdx:terms qid="q28" ...>
    <sdx:term
      no="1"   
      value="1"
      escapedValue="1"
      field="sdxall"
      docs="12"
      docFreq="12"/>
  </sdx:terms>
</sdx:document>

Il nous apprend que 12 documents ont été indexés dans la base sdxworld de l'application identitiée par fr.sdx.test



Auteur : Malo Pichot (AJLSM) - 2003-09-10