<?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 configuration SYSTEM "index.xml" NDATA XML>
  <!ENTITY def-entrepot SYSTEM "../introduction/entrepots.xml" NDATA XML>
  <!ENTITY index SYSTEM "../configuration.xml" NDATA XML>
]>

<webpage id="configuration_base"> 

  <head>
	 <title> Configuration of a document base</title>
	 <titleabbrev>Document base</titleabbrev>
	 <author>
		<firstname>Martin</firstname>
		<surname>Sévigny</surname>
		<affiliation>
		  <orgname>AJLSM</orgname> 
		</affiliation>
	 </author>
	 <revhistory>
		<revision>
		  <revnumber>1.0</revnumber> 
		  <date>2003-06-03</date> 
		</revision>
	 </revhistory>
  </head>

  <para>Documents bases are components of SDX applications 2. The element <sgmltag class="element">sdx:documentBases</sgmltag> of the file <filename>application.xconf</filename> contains information which define the document bases of an application; configuration information associated with this element are explained below.</para>
  <para>The configuration of an SDX application must also contain an element <sgmltag class="element">sdx:userDocumentBase</sgmltag> which has exactly the same structure as the element <sgmltag class="element">sdx:documentBase</sgmltag> with which we are dealing with. All information in this document can also apply to this element <sgmltag class="element">sdx:userDoucmentBase</sgmltag>. The latter allows to configure the <emphasis>spéciale</emphasis> document base which manages users associated to the application. This document base is special because of the specific role it has for the application, but it can actually be used in the same way as any other document base, which also implies that it can be used for searches.</para>
  <para>The SDX architecture has been conceived for the concept of document base to be generic, even though at the moment only one type of document bases can be defined, which are the <emphasis>Lucene</emphasis> document bases. If additional search engines are connected to SDX, other types of document bases will appear.</para>
  <section> 
	 <title>Relation to repositories</title>
	 <para>A document base is not enough to build an SDX application including content. Indeed, even if it has all the necessary information to search documents and display them roughly , they do not contain the documents, even not precise references to their location. But, document bases keep a track of the 
		<olink targetdocent="def-entrepot">document repository</olink> where the indexed document can be found, that allows to find the documents when necessary.</para>
	 <para>The configuration of a document repository can be located <emphasis>inside</emphasis> (in an XML hierarchy) the configuration of a doucment base or <emphasis>outside</emphasis>, which means at the level of the configuration of an application. When the repository is defined inside a document base, it means that it is accessible only for this base; other document bases of the application cannot stock documents in this repository. On the contrary, when the repository is defined at the level of the application, all document bases can put documents in it. The advantage of this configuration is larger when different types of document bases are integrated into SDX.</para>
  </section> 
  <section> 
	 <title>The element <sgmltag class="element">sdx:documentBases</sgmltag></title>
	 <para>This element shall only contain the list of document bases associated to an application. It must be inside the element <sgmltag class="element">sdx:application</sgmltag>.</para>
  </section> 
  <section> 
	 <title>General information on a document base</title>
	 <para>L'élément <sgmltag class="element">sdx:documentBase</sgmltag> contient toutes les informations nécessaires pour définir une base de documents, y compris certaines informations générales. Ces informations générales sont toutes spécifiées en attributs.</para>
	 <table> 
	 <title>Attributs de l'élément <sgmltag class="element">sdx:documentBase</sgmltag></title>
	 <tgroup cols="3"><colspec colnum="1" colname="col1" align="left" colwidth="5cm"/><colspec colnum="2" colname="col2" colwidth="5cm"/><colspec colnum="3" colname="col3" colwidth="*"/><thead> 
		  <row><entry colname="col1" align="left">Attribut</entry><entry colname="col2">Valeurs possibles</entry><entry colname="col3">Description</entry> 
		  </row></thead><tbody> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">id (obligatoire)</entry><entry colname="col2" valign="top">Un identifiant.</entry><entry colname="col3" valign="top">L'identifiant de la base de documents. Cet identifiant est obligatoire, il devient par la suite la clé d'identification de la base de documents pour toutes les opérations de recherche, d'ajout ou de suppression de documents dans cette base.</entry> 
		  </row> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">default</entry><entry colname="col2" valign="top">Un booléen (true ou false), par défaut c'est false.</entry><entry colname="col3" valign="top">Si true, cette base est la base par défaut pour cette application. Cela signifie que les opérations de recherche, d'ajout ou de suppression de documents se feront dans cette base sauf si une base est explicitement mentionnée par son identifiant.</entry> 
		  </row> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">type</entry><entry colname="col2" valign="top">Une chaîne.</entry><entry colname="col3" valign="top">Le type de base de documents; pour l'instant, seule la valeur "lucene" est permise.</entry> 
		  </row> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">xml:lang</entry><entry colname="col2" valign="top">Un code de langue selon la norme XML (par exemple fr-CA ou en).</entry><entry colname="col3" valign="top">La langue par défaut pour le contenu des champs de cette base de documents. Si elle n'est pas spécifiée, c'est la langue par défaut de l'application qui est utilisée.</entry> 
		  </row> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">variant</entry><entry colname="col2" valign="top">Un code de variante de langue, selon le langage Java.</entry><entry colname="col3" valign="top">Java permettant de préciser des variantes de langue, le contenu de cet attribut vient préciser la langue donnée par xml:lang.</entry> 
		  </row> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">remote-access</entry><entry colname="col2" valign="top">Un booléen (true ou false), par défaut c'est false.</entry><entry colname="col3" valign="top">Si true, cette base de documents est cherchable par des applications SDX autres que celle où elle est définie.</entry> 
		  </row> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">keepOriginalDocuments</entry><entry colname="col2" valign="top">Un booléen (true ou false), par défaut c'est true.</entry><entry colname="col3" valign="top">Cet attribut n'a de sens que si le tube d'indexation contient plusieurs étapes de transformation. Dans ce cas, une valeur true signifie que le document original fourni à l'indexation est conservé par SDX; dans le cas contraire, SDX ne conserve que les documents issus des étapes de transformation avec un keep=true.</entry> 
		  </row> 
		  <row valign="top"><entry colname="col1" valign="top" align="left">maxFieldLength</entry><entry colname="col2" valign="top">Un nombre entier, par défaut 10 000.</entry><entry colname="col3" valign="top">Le nombre de champs pour un document. La modification de ce nombre peut avoir des impacts sur la performance. Consulter la 
				<ulink url="http://jakarta.apache.org/lucene/docs/api/org/apache/lucene/index/IndexWriter.html">documentation de la classe IndexWriter de Lucene</ulink> pour en savoir plus.</entry> 
		  </row></tbody> 
	 </tgroup></table> 
  </section> 
  <section> 
	 <title>Générateur d'identifiants</title>
	 <para>Tous les documents gérés par SDX doivent avoir un identifiant. Cet identifiant doit être unique dans la base de documents où il se trouve. En général, c'est le processus d'indexation qui est responsable de déterminer cet identifiant qui est fourni par l'attribut <sgmltag>id</sgmltag> de l'élément <sgmltag class="element">sdx:document</sgmltag> résultant de ce processus d'indexation.</para>
	 <para>Toutefois, dans certains cas, il peut être difficile de trouver un identifiant lors du processus d'indexation, et c'est pourquoi SDX 2 offre un moyen d'en générer automatiquement, à l'aide de <emphasis>générateurs d'identifiants</emphasis>. Un générateur d'identifiants est nécessairement une classe Java qui implémente l'interface <command>fr.gouv.culture.sdx.documentbase.IDGenerator</command>; SDX 2 fournit une telle classe nommée <command>fr.gouv.culture.sdx.documentbase.DefaultIDGenerator</command> qui génère des identifiants de manière aléatoire.</para>
	 <para>Il n'est pas nécessaire de configurer des générateurs d'identifiants, même si on désire en utiliser un. En effet, dans une telle situation, SDX 2 utilisera toujours son propre générateur d'identifiants par défaut. Toutefois, si on veut en utiliser un autre, on doit le déclarer dans le <filename>application.xconf</filename>, à l'aide d'un élément <sgmltag class="element">sdx:idGenerator</sgmltag>, qui doit avoir un attribut <sgmltag class="attribute">class</sgmltag> qui indique le nom complet de la classe, et peut avoir des attributs <sgmltag class="attribute">idPrefix</sgmltag> et <sgmltag class="attribute">idSuffix</sgmltag> pour indiquer un préfixe et/ou un suffixe à ajouter aux identifiants générés. Pour utiliser ce générateur d'identifiants ou celui proposé par SDX 2, on doit spécifier l'attribut <sgmltag class="attribute">generateId</sgmltag> de <sgmltag
		class="element">sdx:document</sgmltag> dans le document retourné par le processus d'indexation, et lui donner une valeur <emphasis role="param">true</emphasis>.</para>
  </section> 
  <section> 
	 <title>Interprète de requêtes</title>
	 <para>A faire.</para>
  </section> 
  <section> 
	 <title>Liste des champs</title>
	 <para>A faire.</para>
  </section> 
  <section> 
	 <title>Indexation</title>
	 <para>A faire.</para>
  </section> 

</webpage> 
