<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2000-2010  Ministere de la culture et de la communication (France), AJLSM
See LICENCE file
-->
<!DOCTYPE webpage PUBLIC "-//Norman Walsh//DTD Website V2.1b1//EN"
"../../../dtd/website.dtd" [
<!ENTITY bases SYSTEM "../introduction/bases.xml" NDATA XML>
<!ENTITY docs_attaches SYSTEM "../indexation/attaches.xml" NDATA XML>
<!ENTITY indexation SYSTEM "../indexation/indexation.xml" NDATA XML>
<!ENTITY indexation_pipeline SYSTEM "../indexation/pipeline.xml" NDATA XML>
<!ENTITY actions_controle SYSTEM "actions_controle.xml" NDATA XML>
<!ENTITY actions_pipelines SYSTEM "actions_pipelines.xml" NDATA XML>
<!ENTITY actions_requetes SYSTEM "actions_requetes.xml" NDATA XML>
<!ENTITY entrepots SYSTEM "../introduction/entrepots.xml" NDATA XML>
<!ENTITY actions_parametres SYSTEM "actions_parametres.xml" NDATA XML>
<!ENTITY actions_generalites SYSTEM "actions_generalites.xml" NDATA XML>
<!ENTITY actions_localisation SYSTEM "actions_localisation.xml" NDATA XML>
<!ENTITY fragmentation SYSTEM "../indexation/fragmentation.xml" NDATA XML>
]>
<webpage id="actions_indexation" xmlns:html="http://www.w3.org/1999/xhtml"
         xmlns:rddl="http://www.rddl.org/"
         xmlns:xlink="http://www.w3.org/1999/xlink">
  <head>
    <title lang="fr">Indexation ou suppression de documents</title>

    <titleabbrev lang="fr">Indexation</titleabbrev>

    <author lang="fr">
      <firstname>Malo</firstname>

      <surname>Pichot</surname>

      <affiliation>
        <orgname>AJLSM</orgname>
      </affiliation>
    </author>

    <revhistory>
      <revision lang="fr">
        <revnumber>1.0</revnumber>

        <date>2004-05-18</date>
      </revision>
    </revhistory>
  </head>

  <itemizedlist>
    <title>Liste des actions décrites dans cette page&nbsp;:</title>

    <listitem>
      <para><ulink url="#sdx_uploaddocument"><sgmltag
      class="element">sdx:uploadDocument</sgmltag></ulink>&nbsp;;</para>
    </listitem>

    <listitem>
      <para><ulink url="#sdx_uploaddocuments"><sgmltag
      class="element">sdx:uploadDocuments</sgmltag></ulink>&nbsp;;</para>
    </listitem>

    <listitem>
      <para><ulink url="#sdx_deletedocument"><sgmltag
      class="element">sdx:deleteDocument</sgmltag></ulink>&nbsp;;</para>
    </listitem>

    <listitem>
      <para><ulink url="#sdx_deletedocuments"><sgmltag
      class="element">sdx:deleteDocuments</sgmltag></ulink>&nbsp;;</para>
    </listitem>

    <listitem>
      <para><ulink url="#sdx_index"><sgmltag
      class="element">sdx:index</sgmltag></ulink>.</para>
    </listitem>
  </itemizedlist>

  <para>SDX étant avant tout un outil de recherche dans une collection de
  documents XML, on admettra que l'indexation des dits documents est l'une des
  actions les plus importantes de l'API-SDX. Plusieurs outils sont mis à
  disposition dans l'API-XSP de SDX pour remplir cette tâche&nbsp;; on y voit
  deux groupes distincts&nbsp;:</para>

  <informaltable>
    <tgroup cols="2">
      <colspec colname="col1" colnum="1" colwidth="1.00*" />

      <colspec colname="col2" colnum="2" colwidth="1.00*" />

      <tbody>
        <row>
          <entry nameend="col2" namest="col1">Indexer les documents</entry>
        </row>

        <row>
          <entry colname="col1"><ulink url="#sdx_uploaddocument"><sgmltag
          class="element">sdx:uploadDocument</sgmltag></ulink></entry>

          <entry colname="col2">Indexer un document.</entry>
        </row>

        <row>
          <entry colname="col1"><ulink url="#sdx_uploaddocuments"><sgmltag
          class="element">sdx:uploadDocuments</sgmltag></ulink></entry>

          <entry colname="col2">Indexer un lot de documents.</entry>
        </row>

        <row>
          <entry nameend="col2" namest="col1">Supprimer les documents</entry>
        </row>

        <row>
          <entry colname="col1"><ulink url="#sdx_deletedocument"><sgmltag
          class="element">sdx:deleteDocument</sgmltag></ulink></entry>

          <entry colname="col2">Supprimer un document.</entry>
        </row>

        <row>
          <entry colname="col1"><ulink url="#sdx_deletedocuments"><sgmltag
          class="element">sdx:deleteDocuments</sgmltag></ulink></entry>

          <entry colname="col2">Supprimer un lot de documents.</entry>
        </row>
      </tbody>
    </tgroup>
  </informaltable>

  <para>On se reportera à la section <olink
  targetdocent="indexation"><emphasis>Indexation</emphasis></olink> de la
  documentation pour approfondir cette notion.</para>

  <para>On retiendra que l'action d'indexer (au sens SDX du terme) correspond
  à identifier un document selon certains critères (ceux qui seront employés
  pour le retrouver) dans une collection de document (i.e. une <olink
  targetdocent="bases">base de documents</olink> dans le vocabulaire SDX). La
  suppression de document correspond à l'élimination de ces informations de la
  dite collection, ceci n'impliquant pas forcément la suppression physique du
  document selon le type de l'entrepôt (voir la section <olink
  targetdocent="entrepots"><citetitle>Les entrepôts</citetitle></olink> pour
  approfondir cette notion).</para>

  <section id="sdx_uploaddocument" lang="fr">
    <title><sgmltag class="element">sdx:uploadDocument</sgmltag></title>

    <para><sgmltag class="element">sdx:uploadDocument</sgmltag> permet de
    lancer l'indexation d'un seul document.</para>

    <informaltable lang="fr">
      <tgroup cols="2">
        <colspec colname="col1" colnum="1" colwidth="1.00*" />

        <colspec colname="col2" colnum="2" colwidth="2.28*" />

        <tbody>
          <row>
            <entry colname="col1">Code implémentant cette action</entry>

            <entry colname="col2"><filename>sdx-actions.xsl</filename></entry>
          </row>

          <row>
            <entry colname="col1">Contexte d'utilisation</entry>

            <entry colname="col2">N'importe où dans un <olink
            localinfo="sdx_page" targetdocent="actions_generalites"><sgmltag
            class="element">sdx:page</sgmltag></olink>.</entry>
          </row>

          <row>
            <entry colname="col1">Contenu éventuel</entry>

            <entry colname="col2"><para><sgmltag
            class="element">sdx:uploadDocument</sgmltag> peut contenir un
            élément <ulink url="#sdx_index"><sgmltag
            class="element">sdx:index</sgmltag></ulink> pour paramétrer une
            <olink targetdocent="indexation">indexation</olink> ou directement
            un <olink localinfo="sdx_pipeline"
            targetdocent="actions_pipelines"><sgmltag
            class="element">sdx:pipeline</sgmltag></olink> afin de construire
            un <olink targetdocent="indexation_pipeline">pipeline
            d'indexation</olink> dynamique.</para> <para>Des stratégies
            peuvent être définies grâce à l'utilisation des actions de
            contrôle de flux <olink localinfo="sdx_fallback"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:fallback</sgmltag></olink> et <olink
            localinfo="sdx_success" targetdocent="actions_parametres"><sgmltag
            class="element">sdx:success</sgmltag></olink>. En cas d'échec de
            la requête (il n'y a aucun résultat à la requête posée), les
            actions et/ou éléments contenus dans l'ensemble <olink
            localinfo="sdx_fallback"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:fallback</sgmltag></olink> sont traités.
            Sinon, ce sont ceux de <olink localinfo="sdx_success"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:success</sgmltag></olink> lorsqu'il
            existe.</para></entry>
          </row>
        </tbody>
      </tgroup>
    </informaltable>

    <table id="sdx_uploaddocument_param">
      <title>Paramètres</title>

      <tgroup cols="4">
        <colspec colname="col1" colnum="1" colwidth="2.42*" />

        <colspec colname="col2" colnum="2" colwidth="3.55*" />

        <colspec colname="col3" colnum="3" colwidth="2.74*" />

        <colspec colname="col4" colnum="4" colwidth="1.00*" />

        <thead>
          <row>
            <entry colname="col1">Nom</entry>

            <entry colname="col2">Description</entry>

            <entry colname="col3">Elément correspondant</entry>

            <entry colname="col4"></entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry colname="col1"><sgmltag
            class="attribute">repo</sgmltag></entry>

            <entry colname="col2">Identifiant l'<olink
            targetdocent="entrepots">entrepôt</olink> devant stocker les
            documents indexés. Par défaut, SDX prend l'identifiant de
            l'entrepôt défini comme entrepôt par défaut dans le fichier
            <filename>application.xconf</filename>.</entry>

            <entry colname="col3"><olink localinfo="sdx_repo"
            targetdocent="actions_localisation"><sgmltag
            class="element">sdx:repo</sgmltag></olink></entry>

            <entry colname="col4">Facultatif (FIXME)</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">base</sgmltag></entry>

            <entry colname="col2">Identifiant la <olink
            targetdocent="bases">base de documents</olink> devant stocker
            l'indexation. Par défaut, SDX prend l'identifiant de la base
            définie comme base par défaut dans le fichier
            <filename>application.xconf</filename>.</entry>

            <entry colname="col3"><olink localinfo="sdx_base"
            targetdocent="actions_localisation"><sgmltag
            class="element">sdx:base</sgmltag></olink></entry>

            <entry colname="col4">Facultatif (FIXME)</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">id</sgmltag></entry>

            <entry colname="col2">Permet d'attribuer un identifiant au
            document que l'on désire indexer.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:id</sgmltag></entry>

            <entry colname="col4">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">type</sgmltag></entry>

            <entry colname="col2">Spécifie le type du document.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:type</sgmltag></entry>

            <entry colname="col4">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">url</sgmltag></entry>

            <entry colname="col2">Spécifie l'URL du document à indexer dans un
            <olink targetdocent="entrepots">entrepôt</olink> de type <sgmltag
            class="attvalue">URL</sgmltag>.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:url</sgmltag></entry>

            <entry colname="col4">Obligatoire s'il n'y a pas <sgmltag
            class="attribute">file</sgmltag></entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">file</sgmltag></entry>

            <entry colname="col2">Spécifie l'URL du document à indexer dans un
            <olink targetdocent="entrepots">entrepôt</olink> de type <sgmltag
            class="attvalue">File System</sgmltag>.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:file</sgmltag></entry>

            <entry colname="col4">Obligatoire s'il n'y a pas <sgmltag
            class="attribute">url</sgmltag></entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">xml</sgmltag></entry>

            <entry colname="col2">TODO</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:xml</sgmltag></entry>

            <entry colname="col4">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">dom</sgmltag></entry>

            <entry colname="col2">TODO</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:dom</sgmltag></entry>

            <entry colname="col4">Facultatif</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <example lang="fr">
      <title>Indexation d'un document</title>

      <para>Le code suivant présente une page XSP activant la commande
      d'indexation de document. Les documents source, des documents XML,
      seront indexés dans la base <sgmltag
      class="attvalue">sdxworld</sgmltag>, dans un entrepôt <sgmltag
      class="attvalue">url</sgmltag>. Noter le test préalable sur
      l'appartenance de l'utilisateur courant au groupe "admins" que nous
      définissions comme le groupe des administrateurs de l'application
      courante.</para>

      <programlisting>
&lt;sdx:page&gt;
	&lt;sdx:userIsMember group="admin" &gt;
      &lt;sdx:uploadDocument base="sdxworld" repo="url" urlParam="url" type="text/XML" /&gt;
	&lt;/sdx:userIsMember&gt;
&lt;/sdx:page&gt;
			</programlisting>
    </example>
  </section>

  <section id="sdx_uploaddocuments" lang="fr">
    <title><sgmltag class="element">sdx:uploadDocuments</sgmltag></title>

    <para>sdx:uploadDocuments permet de lancer l'indexation d'un lot de
    documents réunis par une URL (un lieu de stockage ou une adresse Internet
    commune).</para>

    <informaltable lang="fr">
      <tgroup cols="2">
        <colspec colname="col1" colnum="1" colwidth="1.00*" />

        <colspec colname="col2" colnum="2" colwidth="3.23*" />

        <tbody>
          <row>
            <entry colname="col1">Code implémentant cette action</entry>

            <entry colname="col2"><filename>sdx-actions.xsl</filename></entry>
          </row>

          <row>
            <entry colname="col1">Contexte d'utilisation</entry>

            <entry colname="col2">N'importe où dans un <olink
            localinfo="sdx_page" targetdocent="actions_generalites"><sgmltag
            class="element">sdx:page</sgmltag></olink>.</entry>
          </row>

          <row>
            <entry colname="col1">Contenu éventuel</entry>

            <entry colname="col2"><para><sgmltag
            class="element">sdx:uploadDocuments</sgmltag> peut contenir un
            élément <ulink url="#sdx_index"><sgmltag
            class="element">sdx:index</sgmltag></ulink> pour paramétrer une
            indexation ou directement un <olink localinfo="sdx_pipeline"
            targetdocent="actions_pipelines"><sgmltag>sdx:pipeline</sgmltag></olink>
            afin de construire un pipeline d'indexation dynamique.</para>
            <para>Des stratégies peuvent être définies grâce à l'utilisation
            des actions de contrôle de flux <olink localinfo="sdx_fallback"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:fallback</sgmltag></olink> et <olink
            localinfo="sdx_success" targetdocent="actions_parametres"><sgmltag
            class="element">sdx:success</sgmltag></olink>. En cas d'échec de
            la requête (il n'y a aucun résultat à la requête posée), les
            actions et/ou éléments contenus dans l'ensemble <olink
            localinfo="sdx_fallback"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:fallback</sgmltag></olink> sont traités.
            Sinon, ce sont ceux de <olink localinfo="sdx_success"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:success</sgmltag></olink> lorsqu'il
            existe.</para></entry>
          </row>
        </tbody>
      </tgroup>
    </informaltable>

    <table id="sdx_uploaddocuments_param" lang="fr">
      <title>Paramètres spécifiques</title>

      <tgroup cols="3">
        <colspec colname="col1" colnum="1" colwidth="1.13*" />

        <colspec colname="col2" colnum="2" colwidth="4.26*" />

        <colspec colname="col3" colnum="3" colwidth="1.00*" />

        <thead>
          <row>
            <entry colname="col1">Nom</entry>

            <entry colname="col2">Description</entry>

            <entry colname="col3"></entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry colname="col1"><sgmltag
            class="attribute">includes</sgmltag></entry>

            <entry colname="col2">Identifie les éléments à inclure lors de
            l'indexation.</entry>

            <entry colname="col3">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">excludes</sgmltag></entry>

            <entry colname="col2">Identifie les éléments à exclure lors de
            l'indexation.</entry>

            <entry colname="col3">Facultatif</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <table id="sdx_uploaddocuments_param_comm">
      <title>Paramètres communs</title>

      <tgroup cols="4">
        <colspec colname="col1" colnum="1" colwidth="1.00*" />

        <colspec colname="col2" colnum="2" colwidth="3.07*" />

        <colspec colname="col3" colnum="3" colwidth="1.09*" />

        <colspec colname="col4" colnum="4" colwidth="1.73*" />

        <thead>
          <row>
            <entry colname="col1">Nom</entry>

            <entry colname="col2">Description</entry>

            <entry colname="col3">Elément correspondant</entry>

            <entry colname="col4"></entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry colname="col1"><sgmltag
            class="attribute">repo</sgmltag></entry>

            <entry colname="col2">Identifiant l'<olink
            targetdocent="entrepots">entrepôt</olink> devant stocker les
            documents indexés. Par défaut, SDX prend l'identifiant de
            l'entrepôt défini comme entrepôt par défaut dans le fichier
            <filename>application.xconf</filename>.</entry>

            <entry colname="col3"><olink localinfo="sdx_repo"
            targetdocent="actions_localisation"><sgmltag
            class="element">sdx:repo</sgmltag></olink></entry>

            <entry colname="col4">Facultatif (FIXME)</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">base</sgmltag></entry>

            <entry colname="col2">Identifiant la <olink
            targetdocent="bases">base de documents</olink> devant stocker
            l'indexation. Par défaut, SDX prend l'identifiant de la base
            définie comme base par défaut dans le fichier
            <filename>application.xconf</filename>.</entry>

            <entry colname="col3"><olink localinfo="sdx_base"
            targetdocent="actions_localisation"><sgmltag
            class="element">sdx:base</sgmltag></olink></entry>

            <entry colname="col4">Facultatif (FIXME)</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">batch</sgmltag></entry>

            <entry colname="col2">Modifie la taille des lots
            d'indexation (plus d'infos avec <ulink
            url="#sdx_index_param"><sgmltag>sdx:index</sgmltag></ulink>). Par
            défaut, le lot est de 25 documents.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:index</sgmltag></entry>

            <entry colname="col4">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">dir</sgmltag></entry>

            <entry colname="col2">Identifie le répertoire contenant les
            documents à indexer.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:dir</sgmltag></entry>

            <entry colname="col4">Obligatoire s'il n'y a ni <sgmltag
            class="attribute">url</sgmltag> ni <sgmltag
            class="attribute">zip</sgmltag></entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">url</sgmltag></entry>

            <entry colname="col2">Identifie l'URL des documents à
            indexer.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:url</sgmltag></entry>

            <entry colname="col4">Obligatoire s'il n'y a ni <sgmltag
            class="attribute">zip</sgmltag> ni <sgmltag
            class="attribute">dir</sgmltag></entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">zip</sgmltag></entry>

            <entry colname="col2">Identifie l'archive ZIP contenant les
            documents à indexer.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:zip</sgmltag></entry>

            <entry colname="col4">Obligatoire s'il n'y a ni <sgmltag
            class="attribute">dir</sgmltag> ni <sgmltag
            class="attribute">url</sgmltag></entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">type</sgmltag></entry>

            <entry colname="col2">Spécifie le type des documents que l'on
            souhaite indexer.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:type</sgmltag></entry>

            <entry colname="col4">Facultatif</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <example lang="fr">
      <title>Indexation d'un lot de documents XML</title>

      <para>Le code suivant présente l'emploi de <sgmltag
      class="element">sdx:uploadDocuments</sgmltag> dans une page XSP. On
      attend certaines informations pour déclencher l'indexation : la base de
      documents dans laquelle on souhaite effectuer l'indexation&nbsp;; le
      répertoire contenant les documents à indexer. On imagine que ce dernier
      contient non seulement les articles au format XML, mais également les
      images qui les illustrent. Les attributs <sgmltag
      class="attribute">includes</sgmltag> et <sgmltag
      class="element">excludes</sgmltag> sont utilisés ici dans un but
      pédagogique. Le premier spécifie que seul des documents XML devront être
      indexés&nbsp;; le second spécifie que les images au format JPEG ne
      devront pas être prises en compte. On imagine bien que le premier est
      amplement suffisant dans ce cas précis&nbsp;!</para>

      <programlisting>
&lt;sdx:page&gt;
	&lt;sdx:uploadDocuments baseParam="base" dirParam="dir" includes="*.xml" excludes="*.jpg" /&gt;
&lt;/sdx:page&gt;
			</programlisting>

      <para>Il manque bien entendu des informations à SDX pour réaliser
      pleinement cette indexation, par exemple le nom de l'entrepôt, le <olink
      targetdocent="indexation_pipeline">pipeline d'indexation</olink>. Ces
      paramètres, absents ici, doivent être définis dans le fichier
      <filename>application.xconf</filename>.</para>
    </example>
  </section>

  <section id="sdx_deletedocument" lang="fr">
    <title><sgmltag
    class="element">sdx:deleteDocument</sgmltag>(CHECK)</title>

    <para><sgmltag class="element">sdx:deleteDocument</sgmltag> est l'action
    contraire de <ulink url="#sdx_uploaddocument"><sgmltag
    class="element">sdx:uploadDocument</sgmltag></ulink>. Elle sert à retirer
    un document (ou seulement sa référence suivant le type de l'<olink
    targetdocent="entrepots">entrepôt</olink>) d'une collection de documents
    (i.e. une <olink targetdocent="bases">base de documents</olink> dans le
    vocabulaire SDX). Noter que la suppression d'un document entraîne la
    suppression de ses documents attachés (voir la section <olink
    targetdocent="docs_attaches"><citetitle>Documents
    attachés</citetitle></olink>) et de ses sous-documents (voir la section
    <olink targetdocent="fragmentation"><citetitle>Fragmentation de
    documents</citetitle></olink>).</para>

    <informaltable lang="fr">
      <tgroup cols="2">
        <colspec colname="col1" colnum="1" colwidth="1.00*" />

        <colspec colname="col2" colnum="2" colwidth="4.30*" />

        <tbody>
          <row>
            <entry colname="col1">Code implémentant cette action</entry>

            <entry colname="col2"><filename>sdx-actions.xsl</filename></entry>
          </row>

          <row>
            <entry colname="col1">Contexte d'utilisation</entry>

            <entry colname="col2">N'importe où dans un <olink
            localinfo="sdx_page" targetdocent="actions_generalites"><sgmltag
            class="element">sdx:page</sgmltag></olink>.</entry>
          </row>

          <row>
            <entry colname="col1">Contenu éventuel</entry>

            <entry colname="col2">Des stratégies peuvent être définies grâce à
            l'utilisation des actions de contrôle de flux <olink
            localinfo="sdx_fallback"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:fallback</sgmltag></olink> et <olink
            localinfo="sdx_success" targetdocent="actions_parametres"><sgmltag
            class="element">sdx:success</sgmltag></olink>. En cas d'échec de
            la requête (il n'y a aucun résultat à la requête posée), les
            actions et/ou éléments contenus dans l'ensemble <olink
            localinfo="sdx_fallback"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:fallback</sgmltag></olink> sont traités.
            Sinon, ce sont ceux de <olink localinfo="sdx_success"
            targetdocent="actions_parametres"><sgmltag
            class="element">sdx:success</sgmltag></olink> lorsqu'il
            existe.</entry>
          </row>
        </tbody>
      </tgroup>
    </informaltable>

    <table id="sdx_deletedocument_param" lang="fr">
      <title>Paramètres spécifiques</title>

      <tgroup cols="3">
        <colspec colname="col1" colnum="1" colwidth="1.13*" />

        <colspec colname="col2" colnum="2" colwidth="4.26*" />

        <colspec colname="col3" colnum="3" colwidth="1.00*" />

        <thead>
          <row>
            <entry colname="col1">Nom</entry>

            <entry colname="col2">Description</entry>

            <entry colname="col3"></entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry colname="col1"><sgmltag
            class="attribute">delete</sgmltag></entry>

            <entry colname="col2">Confirmation de suppression du document de
            la base de documents. Ce paramètre admet deux valeurs&nbsp;:
            <sgmltag class="attvalue">false</sgmltag> et <sgmltag
            class="attvalue">true</sgmltag>.</entry>

            <entry colname="col3">Obligatoire</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <table id="sdx_deletedocument_param_comm">
      <title>Paramètres communs</title>

      <tgroup cols="4">
        <colspec colname="col1" colnum="1" colwidth="1.20*" />

        <colspec colname="col2" colnum="2" colwidth="2.70*" />

        <colspec colname="col3" colnum="3" colwidth="2.89*" />

        <colspec colname="col4" colnum="4" colwidth="1.00*" />

        <thead>
          <row>
            <entry colname="col1">Nom</entry>

            <entry colname="col2">Description</entry>

            <entry colname="col3">Elément correspondant</entry>

            <entry colname="col4"></entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry colname="col1"><sgmltag
            class="attribute">id</sgmltag></entry>

            <entry colname="col2">Identifiant du document à retirer de la base
            de document.</entry>

            <entry colname="col3"><sgmltag
            class="element">sdx:id</sgmltag></entry>

            <entry colname="col4">Obligatoire</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">base</sgmltag></entry>

            <entry colname="col2">Identifiant de la base de documents. Par
            défaut, il s'agit de la base de documents courante.</entry>

            <entry colname="col3"><olink localinfo="sdx_base"
            targetdocent="actions_localisation"><sgmltag
            class="element">sdx:base</sgmltag></olink></entry>

            <entry colname="col4">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">app</sgmltag></entry>

            <entry colname="col2">Identifiant de l'application. Par défaut, il
            s'agit de l'application courante.</entry>

            <entry colname="col3"><olink localinfo="sdx_app"
            targetdocent="actions_localisation"><sgmltag
            class="element">sdx:app</sgmltag></olink></entry>

            <entry colname="col4">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">appByPath</sgmltag></entry>

            <entry colname="col2">Indique la partie de l'URL qui suit
            "<literal>sdx/</literal>" dans une installation standard, par
            exemple "<literal>sdxtest</literal>".</entry>

            <entry colname="col3"><olink localinfo="sdx_app"
            targetdocent="actions_localisation"><sgmltag
            class="element">sdx:app</sgmltag></olink></entry>

            <entry colname="col4">Facultatif</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <example lang="fr">
      <title>Retirer un document de la collection</title>

      <para>L'exemple suivant présente une page XSP activant la commande de
      suppression de documents. Aucune information n'est fourni (noms de
      l'application et de la base de document) hormis le nom du paramètre HTTP
      apportant l'identifiant du document que l'on souhaite retirer de la
      collection de documents. La page réagira ainsi à une URL du type&nbsp;:
      <literal>{serveur SDX}/sdxtest/del.xsp?id=ar5664a</literal>. Ceci
      supprimera toute l'information reliée au document
      <literal>ar5664a</literal> de la base de documents courante, de
      l'application courante. Ce document ne sera plus
      «&nbsp;cherchable&nbsp;» par SDX.</para>

      <programlisting>
&lt;sdx:page&gt;
	&lt;sdx:deleteDocument idParam="id" &gt;
		&lt;sdx:fallback&gt;
			&lt;message type="echec_suppression"/&gt;
		&lt;/sdx:fallback&gt;
	&lt;/sdx:deleteDocument&gt;
&lt;/sdx:page&gt;
			</programlisting>

      <para>Noter l'emploi de <olink localinfo="sdx_fallback"
      targetdocent="actions_parametres"><sgmltag
      class="element">sdx:fallback</sgmltag></olink> devant afficher un
      message au cas où la suppression n'aurai pas réussi.</para>
    </example>
  </section>

  <section id="sdx_deletedocuments" lang="fr">
    <title><sgmltag class="element">sdx:deleteDocuments</sgmltag></title>

    <section>
      <title>Description</title>

      <para><sgmltag class="element">sdx:deleteDocuments</sgmltag> permet de
      supprimer toutes les informations d'un lot de documents d'une
      collection. Elle agit ainsi à l'opposé de <ulink
      url="#sdx_uploaddocuments"><sgmltag
      class="element">sdx:uploadDocuments</sgmltag></ulink>. Elle diffère de
      son homologue <ulink url="#sdx_deletedocument"><sgmltag
      class="element">sdx:deleteDocument</sgmltag></ulink> par le fait qu'elle
      isole le lot de documents à supprimer de la base de documents en faisant
      appel à une requête. Ainsi, elle peut contenir toutes les <olink
      localinfo="elements_requete" targetdocent="actions_requetes">actions de
      construction de requêtes</olink> proposées par l'API-XSP de SDX.</para>

      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colname="col1" colnum="1" colwidth="1.00*" />

          <colspec colname="col2" colnum="2" colwidth="2.82*" />

          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>

              <entry
              colname="col2"><filename>sdx-actions.xsl</filename></entry>
            </row>

            <row>
              <entry colname="col1">Contexte d'utilisation</entry>

              <entry colname="col2">N'importe où dans un <olink
              localinfo="sdx_page" targetdocent="actions_generalites"><sgmltag
              class="element">sdx:page</sgmltag></olink>.</entry>
            </row>

            <row>
              <entry colname="col1">Contenu éventuel</entry>

              <entry colname="col2">Des stratégies peuvent être définies grâce
              à l'utilisation des actions de contrôle de flux <olink
              localinfo="sdx_fallback"
              targetdocent="actions_parametres"><sgmltag
              class="element">sdx:fallback</sgmltag></olink> et <olink
              localinfo="sdx_success"
              targetdocent="actions_parametres"><sgmltag
              class="element">sdx:success</sgmltag></olink>. En cas d'échec de
              la requête (il n'y a aucun résultat à la requête posée), les
              actions et/ou éléments contenus dans l'ensemble <olink
              localinfo="sdx_fallback"
              targetdocent="actions_parametres"><sgmltag
              class="element">sdx:fallback</sgmltag></olink> sont traités.
              Sinon, ce sont ceux de <olink localinfo="sdx_success"
              targetdocent="actions_parametres"><sgmltag
              class="element">sdx:success</sgmltag></olink> lorsqu'il
              existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>

    <section>
      <title>Paramètres</title>

      <table id="sdx_deletedocuments_param" lang="fr">
        <title>Paramètres spécifiques</title>

        <tgroup cols="3">
          <colspec colname="col1" colnum="1" colwidth="1.13*" />

          <colspec colname="col2" colnum="2" colwidth="4.26*" />

          <colspec colname="col3" colnum="3" colwidth="1.00*" />

          <thead>
            <row>
              <entry colname="col1">Nom</entry>

              <entry colname="col2">Description</entry>

              <entry colname="col3"></entry>
            </row>
          </thead>

          <tbody>
            <row>
              <entry colname="col1"><sgmltag
              class="attribute">delete</sgmltag></entry>

              <entry colname="col2">Confirmation de suppression du document de
              la base de documents. Ce paramètre admet deux valeurs&nbsp;:
              <sgmltag class="attvalue">false</sgmltag> et <sgmltag
              class="attvalue">true</sgmltag>.</entry>

              <entry colname="col3">Obligatoire</entry>
            </row>
          </tbody>
        </tgroup>
      </table>

      <table id="sdx_deletedocuments_param_comm">
        <title>Paramètres communs</title>

        <tgroup cols="4">
          <colspec colname="col1" colnum="1" colwidth="1.78*" />

          <colspec colname="col2" colnum="2" colwidth="2.81*" />

          <colspec colname="col3" colnum="3" colwidth="1.54*" />

          <colspec colname="col4" colnum="4" colwidth="1.00*" />

          <thead>
            <row>
              <entry colname="col1">Nom</entry>

              <entry colname="col2">Description</entry>

              <entry colname="col3">Elément correspondant</entry>

              <entry colname="col4"></entry>
            </row>
          </thead>

          <tbody>
            <row>
              <entry colname="col1"><sgmltag
              class="attribute">qid</sgmltag></entry>

              <entry colname="col2">Identifiant de la requête que l'on
              souhaite reprendre. Cet identifiant est donné (automatiquement
              ou statiquement) à chaque exécutée&nbsp;; il n'est conservé en
              mémoire que durant la session de l'utilisateur (cf. <olink
              localinfo="sdx_resuts" targetdocent="actions_requetes"><sgmltag
              class="element">sdx:results</sgmltag></olink> pour approfondir
              ce point).</entry>

              <entry colname="col3"><olink localinfo="sdx_results"
              targetdocent="actions_controle"><sgmltag
              class="element">sdx:results</sgmltag></olink></entry>

              <entry colname="col4">Facultatif</entry>
            </row>

            <row>
              <entry colname="col1"><sgmltag
              class="attribute">page</sgmltag></entry>

              <entry colname="col2">Numéro de la page de résultat que l'on
              souhaite appeler.</entry>

              <entry colname="col3"><olink localinfo="sdx_results"
              targetdocent="actions_controle"><sgmltag
              class="element">sdx:results</sgmltag></olink></entry>

              <entry colname="col4">Facultatif</entry>
            </row>

            <row>
              <entry colname="col1"><sgmltag
              class="attribute">p</sgmltag></entry>

              <entry colname="col2"><emphasis role="italic">Idem</emphasis>.
              <emphasis role="bold">Déprécié</emphasis></entry>

              <entry colname="col3"><olink localinfo="sdx_results"
              targetdocent="actions_controle"><sgmltag
              class="element">sdx:results</sgmltag></olink></entry>

              <entry colname="col4">Facultatif</entry>
            </row>

            <row>
              <entry colname="col1"><sgmltag
              class="attribute">hpp</sgmltag></entry>

              <entry colname="col2">Spécifie le nombre de réponses que devra
              contenir la page de résultats. Par défaut, ce nombre est fixé à
              20 (cf. fichier <filename>sdx.xsl</filename>). Dans le cas de la
              suppression d'un lot de documents, il convient de s'assurer que
              l'ensemble des documents sont inclus dans le résultat (<sgmltag
              class="attribute">hpp="-1"</sgmltag>)</entry>

              <entry colname="col3"><olink localinfo="sdx_hpp"
              targetdocent="actions_controle"><sgmltag
              class="element">sdx:hpp</sgmltag></olink></entry>

              <entry colname="col4">Facultatif</entry>
            </row>
          </tbody>
        </tgroup>
      </table>
    </section>
  </section>

  <section>
    <title>Exemple</title>

    <example>
      <title>Suppression d'un lot de document dans deux bases</title>

      <para>L'exemple suivant présente une page XSP chargée de supprimer
      l'ensemble des documents de deux bases de documents. Ce n'est
      certainement pas la seule manière d'arriver à ce résultat ; cette page à
      toutefois l'avantage de fonctionner sans attendre aucune information
      extérieure (e.g., le qid d'une requête effectuer à partir d'une autre
      page XSP). Pour isoler le lot de documents, on emploie l'action de
      requête <olink localinfo="sdx_executefieldquery"
      targetdocent="actions_requetes"><sgmltag
      class="element">sdx:fieldQuery</sgmltag></olink>.</para>

      <programlisting>
&lt;sdx:page&gt;
	&lt;sdx:deleteDocuments delete="true" hpp="-1"&gt;
		&lt;sdx:locations&gt;
			&lt;sdx:location base="docs" /&gt;
      &lt;sdx:location base="da" /&gt;
		&lt;/sdx:locations&gt;
		&lt;sdx:fieldQuery field="sdxall" value="-1"/&gt;
	&lt;/sdx:deleteDocuments&gt;
&lt;/sdx:page&gt;
			</programlisting>

      <para>Noter que <sgmltag class="element">sdx:deleteDocuments</sgmltag>
      n'admet que les actions de construction de requêtes et non pas les
      actions d'exécution de requêtes (cf. <olink
      targetdocent="actions_requetes"><citetitle>Exécution des
      requêtes</citetitle></olink>). Et bien que <sgmltag
      class="element">sdx:fieldQuery</sgmltag> admet des informations de
      localisation (i.e., on peut employer directement un <sgmltag
      class="attribute">base="..."</sgmltag> dans un <sgmltag
      class="element">sdx:fieldQuery</sgmltag>), il devient indispensable
      d'employer <olink localinfo="sdx_locations"
      targetdocent="actions_localisation"><sgmltag
      class="element">sdx:locations</sgmltag></olink> et <olink
      localinfo="sdx_location" targetdocent="actions_localisation"><sgmltag
      class="element">sdx:location</sgmltag></olink> pour localiser les deux
      bases de documents.</para>
    </example>
  </section>

  <section id="sdx_index" lang="fr">
    <title><sgmltag class="element">sdx:index</sgmltag></title>

    <para><sgmltag class="element">sdx:index</sgmltag> permet de définir les
    paramètres d'indexation. Utilisée par les deux éléments déclencheur de
    l'indexation (<ulink url="#sdx_uploaddocument"><sgmltag
    class="element">sdx:uploadDocument</sgmltag></ulink> et <ulink
    url="#sdx_uploaddocuments"><sgmltag
    class="element">sdx:uploadDocuments</sgmltag></ulink>), elle permet à ces
    deux actions de définir des pipelines d'indexation (cf. <olink
    localinfo="sdx_pipeline"><sgmltag
    class="element">sdx:pipeline</sgmltag></olink>).</para>

    <para>On se reportera aux sections <olink
    targetdocent="indexation"><citetitle>Indexation</citetitle></olink> et
    <olink targetdocent="indexation_pipeline"><citetitle>Pipeline
    d'indexation</citetitle></olink> pour approfondir ces notions.</para>

    <para>Depuis SDX version 2..2, il est possible de déterminer le
    comportement de SDX lors de l'indexation de documents possédant le même
    identifiant (e.g., on souhaite indexer la nouvelle version d'un
    document).</para>

    <informaltable lang="fr">
      <tgroup cols="2">
        <colspec colname="col1" colnum="1" colwidth="1.00*" />

        <colspec colname="col2" colnum="2" colwidth="3.50*" />

        <tbody>
          <row>
            <entry colname="col1">Code implémentant cette action</entry>

            <entry colname="col2"><filename>sdx-actions.xsl</filename></entry>
          </row>

          <row>
            <entry colname="col1">Contexte d'utilisation</entry>

            <entry colname="col2">L'action <sgmltag
            class="element">sdx:index</sgmltag> ou ses attributs peuvent être
            employés avec <ulink url="#sdx_uploaddocument"><sgmltag
            class="element">sdx:uploadDocument</sgmltag></ulink>&nbsp;; <ulink
            url="#sdx_uploaddocuments"><sgmltag
            class="element">sdx:uploadDocuments</sgmltag></ulink></entry>
          </row>

          <row>
            <entry colname="col1">Contenu éventuel</entry>

            <entry colname="col2"><sgmltag class="element">sdx:index</sgmltag>
            contient les éléments de création d'un pipeline
            d'indexation&nbsp;: <olink localinfo="sdx_pipeline"
            targetdocent="actions_pipelines"><sgmltag
            class="element">sdx:pipeline</sgmltag></olink> et <olink
            localinfo="sdx_transformation"
            targetdocent="actions_pipelines"><sgmltag
            class="element">sdx:transformation</sgmltag></olink>.</entry>
          </row>
        </tbody>
      </tgroup>
    </informaltable>

    <table id="sdx_index_param" lang="fr">
      <title>Paramètres spécifiques</title>

      <tgroup cols="3">
        <colspec colname="col1" colnum="1" colwidth="1.35*" />

        <colspec colname="col2" colnum="2" colwidth="4.01*" />

        <colspec colname="col3" colnum="3" colwidth="1.00*" />

        <thead>
          <row>
            <entry colname="col1">Nom</entry>

            <entry colname="col2">Description</entry>

            <entry colname="col3"></entry>
          </row>
        </thead>

        <tbody>
          <row>
            <entry colname="col1"><sgmltag
            class="attribute">show</sgmltag></entry>

            <entry colname="col2"><para>Gestion des informations sur le
            résultat de l'indexation. Les valeurs autorisées sont&nbsp;:
            </para> <variablelist>
                <varlistentry>
                  <term>summary</term>

                  <listitem>
                    <para>Sommaire complet.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term>failures</term>

                  <listitem>
                    <para>Nombre d'échec.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term>additions</term>

                  <listitem>
                    <para>Nombre de documents ajoutés.</para>
                  </listitem>
                </varlistentry>
              </variablelist></entry>

            <entry colname="col3">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1"><sgmltag
            class="attribute">batch</sgmltag></entry>

            <entry colname="col2"><para>SDX indexe en mémoire un lot de
            documents puis ensuite écrit l'index, l'unifie avec le précédent
            et optimise l'index. Par défaut, ce lot est de 25
            documents.</para><para>Ce paramètre permet de modifier la taille
            de ce lot de document.</para></entry>

            <entry colname="col3">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1" id="sameId"><sgmltag
            class="attribute">sameId</sgmltag></entry>

            <entry colname="col2"><para>Ce paramètre permet de spécifier la
            manière dont SDX doit gérer les documents qui lui sont soumis avec
            le même identifiant (e.g., lorsque l'on cherche indexer la
            nouvelle version d'un document). Ce paramètre ne concerne que les
            documents "maîtres". Le comportement d'indexation des documents
            attachés (e.g., les images) est déterminé par le paramètre <ulink
            url="#attachedDocumentSameId"><sgmltag
            class="attribute">attachedDocumentSameId</sgmltag></ulink>. Trois
            valeurs sont possibles&nbsp;: </para> <variablelist>
                <varlistentry>
                  <term><sgmltag class="attvalue">replace</sgmltag></term>

                  <listitem>
                    <para>SDX supprime l'ancien document et le remplace par le
                    nouveau document. <emphasis role="bold">C'est le
                    comportement par défaut</emphasis>.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><sgmltag class="attvalue">ignore</sgmltag></term>

                  <listitem>
                    <para>SDX ignore le nouveau document&nbsp;; il conserve
                    donc l'ancien document.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><sgmltag class="attvalue">error</sgmltag></term>

                  <listitem>
                    <para>SDX stoppe l'indexation en provoquant une erreur dûe
                    à la violation de la règle d'unicité des
                    identifiants.</para>
                  </listitem>
                </varlistentry>
              </variablelist></entry>

            <entry colname="col3">Facultatif</entry>
          </row>

          <row>
            <entry colname="col1" id="attachedDocumentSameId"><sgmltag
            class="attribute">attachedDocumentSameId</sgmltag></entry>

            <entry colname="col2"><para>Ce paramètre agit de la même manière
            que le <ulink url="#sameId">précédent</ulink>. Il est toutefois
            spécifique aux documents attachés. Ainsi, il est possible
            d'établir deux règles distinctes pour les documents maîtres et
            pour les documents attachés. Quatre valeurs sont possibles&nbsp;:
            </para> <variablelist>
                <varlistentry>
                  <term><sgmltag class="attvalue">refresh</sgmltag></term>

                  <listitem>
                    <para>SDX supprime l'ancien document attaché de l'entrepôt
                    et ajoute le nouveau document attaché. Les liens avec
                    l'ancien document "maître" sont conservés. SDX ajoute des
                    liens avec le nouveau "maître". <emphasis
                    role="bold">C'est le comportement par
                    défaut</emphasis>.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><sgmltag class="attvalue">replace</sgmltag></term>

                  <listitem>
                    <para>SDX supprime l'ancien document attaché de l'entrepôt
                    et ajoute le nouveau document attaché. Les liens avec
                    l'ancien document "maître" sont supprimés. SDX crée des
                    liens avec le nouveau document "maître".</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><sgmltag class="attvalue">ignore</sgmltag></term>

                  <listitem>
                    <para>SDX ignore le nouveau document attaché. Aucun
                    changement n'est apporté.</para>
                  </listitem>
                </varlistentry>

                <varlistentry>
                  <term><sgmltag class="attvalue">error</sgmltag></term>

                  <listitem>
                    <para>SDX stoppe l'indexation en provoquant une erreur dûe
                    à la violation de la règle d'unicité des
                    identifiants.</para>
                  </listitem>
                </varlistentry>
              </variablelist></entry>

            <entry colname="col3">Facultatif</entry>
          </row>
        </tbody>
      </tgroup>
    </table>

    <example id="exemple_sdx_index_01">
      <title>Impossible d'indexer une nouvelle version de document</title>

      <para>Dans l'exemple suivant, on souhaite modifier le comportement par
      défaut de SDX face à l'indexation de document possédant le même
      identifiant. On ne veut pas permettre le remplacement de document&nbsp;;
      il est seulement possible d'en ajouter ou d'en retirer.</para>

      <programlisting>
&lt;sdx:page&gt;
	&lt;sdx:uploadDocuments appParam="a" baseParam="b" repoParam="r" dirParam="d" zipParam="z" includes="*.xml" excludes="*.jpg" sameId="ignore"&gt;
		&lt;sdx:parameter name="attachedDocumentSameId" value="ignore" /&gt;
	&lt;/sdx:uploadDocuments&gt;
&lt;/sdx:page&gt;
			</programlisting>

      <para>On notera les deux syntaxes proposées ici pour passer les
      paramètres <ulink url="#sameId"><sgmltag
      class="attribute">sameId</sgmltag></ulink> et <ulink
      url="#attachedDocumentSameId"><sgmltag
      class="attribute">attachedDocumentSameId</sgmltag></ulink>, à l'aide
      d'un attribut de <ulink url="#sdx:_uploadDocuments"><sgmltag
      class="element">sdx:uploadDocuments</sgmltag></ulink> ou à l'aide de
      <olink localinfo="sdx_parameter"
      targetdocent="actions_parametres"><sgmltag
      class="element">sdx:parameter</sgmltag></olink>.</para>
    </example>
  </section>
</webpage>