Personnalisation de la configuration

Personnalisation de la configuration


Configuration générale


Le fichier configIndexing.xml contient la configuration générale de l'application. Il se trouve dans le dossier properties. Il se décompose en trois sections :

  • Partie à modifier par l'utilisateur. C'est dans cette section que l'utilisateur indiquera notamment le répertoire où sera créé l'index ainsi que les paramètres du proxy.
  • Options modifiables par l'utilisateur. Cette section propose divers éléments que l'utilisateur peut modifier s'il le souhaite comme le nombre de documents à indexer avant d'optimiser l'index.
  • Partie à ne pas modifier par l'utilisateur. Cette section ne doit en aucun cas être modifiée car cela engendrerait des dysfonctionnements graves du module.
    Le fichier se présente de la manière suivante :
<config>

    <!-- PARTIE A MODIFIER PAR L'UTILISATEUR -->

        <!-- Repertoire de l'index -->
        <indexDir>[INDEXES_DATA_DIR]/index-indexing/index</indexDir>

        <!-- Proxy -->
        <proxy>
            <proxyHost>[PROXY_HOST]</proxyHost>
            <proxyPort>[PROXY_PORT]</proxyPort>
        </proxy>

	<!-- Planification du gestionnaire de liens -->
	<scheduleCrawler>[INDEXING_SCHEDULE_CRAWLER]</scheduleCrawler>
	<!--scheduleCrawler>0 15 23 * * ?</scheduleCrawler-->

	<!-- e-mail de l'administrateur -->
	<administratorMail>[SMTP_ADMINISTRATOR_MAIL]</administratorMail>

	<!-- smtp de l'etablissement -->
	<stmpEtablissement>[SMTP_ETABLISSEMENT]</stmpEtablissement>


    <!-- OPTIONS MODIFIABLES PAR L'UTILISATEUR -->

   	<!-- Fichier de configuration LIUS -->
        <liusConfigFile>liusConfig.xml</liusConfigFile>

        <!-- Identifiants des fiches a ne pas indexer separees par des virgules -->
	<noticesToNotIndex></noticesToNotIndex>

        <!-- Optimisation de l'index -->
	        <!-- Optimisation planifiee de l'index -->
		<scheduleOptimize></scheduleOptimize>
		<!--scheduleOptimize>0 55 09 * * ?</scheduleOptimize-->

		<!-- Frequence d'optimisation interne en nombre d'ecritures dans l'index -->
		<frequencyOfOptimization>200</frequencyOfOptimization>

		<!-- Frequence de verification de l'etat d'optimisation de l'index en millisecondes -->
		<frequencyOfOptimizeState>60000</frequencyOfOptimizeState>

        <!-- Classe de transformation de requete -->
        <queryTransformerClass>org.orioai.indexing.search.querytransformer.AccentRemoverTransformation</queryTransformerClass>

        <!-- Formats de métadonnées -->
        <format id="dublin_core">
            <namespace prefix="dc" uri="http://purl.org/dc/elements/1.1/"/>
            <namespace prefix="oaidc" uri="http://www.openarchives.org/OAI/2.0/oai_dc/"/>
            <xpathToPlainText>//dc:relation</xpathToPlainText>
        </format>

        <format id="formation">
            <namespace prefix="cdm" uri="http://www.w3.org/2001/XMLSchema-instance"/>
            <xpathToPlainText />
        </format>

        <format id="pedagogique">
            <namespace prefix="lom" uri="http://ltsc.ieee.org/xsd/LOM"/>
            <xpathToPlainText>//lom:technical/lom:location</xpathToPlainText>
        </format>

        <format id="tef">
	        <namespace prefix="dc" uri="http://purl.org/dc/elements/1.1/"/>
		<namespace prefix="oaidc" uri="http://www.openarchives.org/OAI/2.0/oai_dc/"/>
		<namespace prefix="tef" uri="http://www.abes.fr/abes/documents/tef"/>
		<namespace prefix="mets" uri="http://www.loc.gov/METS/"/>
		<namespace prefix="metsRights" uri="http://cosimo.stanford.edu/sdr/metsrights/"/>
		<namespace prefix="dcterms" uri="http://purl.org/dc/terms/"/>
		<namespace prefix="mads" uri="http://www.loc.gov/mads/"/>
		<namespace prefix="xlink" uri="http://www.w3.org/1999/xlink"/>
        </format>

        <!-- Parametres de tris communs pour des formats differents -->
	<sortField name="title_sort">
		<field>//dc:title</field>
		<field>//lom:general/lom:title/lom:string[starts-with(@language,'fr')]</field>
	</sortField>

        <sortField name="author_sort">
		<field>//dc:creator</field>
		<field>//lom:lifeCycle/lom:contribute[lom:role/lom:value='author']/lom:entity(name)</field>
	</sortField>

        <!-- Chaines de remplacement -->
	<replacement stringToReplace=":" stringReplacement="@">
		<metadata>md-ori-oai-id</metadata>
                <metadata>md-ori-oai-namespace</metadata>
	</replacement>

	<replacement stringToReplace="'" stringReplacement="quote">
                 <metadata>md-ori-oai-id</metadata>
	</replacement>

	<replacement stringToReplace=" " stringReplacement="spaceChar">
		<metadata>md-ori-oai-id</metadata>
	</replacement>

	<replacement stringToReplace=":" stringReplacement="_">
        	<formatId>pedagogique</formatId>
                <xpath>//lom:general/lom:identifier/lom:entry</xpath>
        </replacement>

	<replacement stringToReplace=" " stringReplacement="_">
	        <formatId>pedagogique</formatId>
		<xpath>//lom:classification/lom:taxonPath[lom:source/lom:string='dewey']/lom:taxon/lom:id</xpath>
		<xpath>//lom:classification/lom:taxonPath[starts-with(lom:source/lom:string[starts-with(@language,'fr')],'CDD')]/lom:taxon/lom:id</xpath>
		<xpath>//lom:classification/lom:taxonPath[starts-with(lom:source/lom:string[starts-with(@language,'en')],'DDC')]/lom:taxon/lom:id</xpath>
		<xpath>//lom:educational/lom:difficulty/lom:value</xpath>
		<xpath>//lom:educational/lom:interactivityLevel/lom:value</xpath>
		<xpath>//lom:educational/lom:semanticDensity/lom:value</xpath>
	</replacement>

	<replacement stringToReplace="son" stringReplacement="md_son">
		<formatId>pedagogique</formatId>
		<xpath>//lom:general/lomfr:documentType/lomfr:value</xpath>
	</replacement>

	<replacement stringToReplace="vCardToUpperCaseORI" stringReplacement="vCardToUpperCaseORI">
		<formatId>pedagogique</formatId>
		<xpath>//lom:contribute/lom:entity</xpath>
	</replacement>

	<replacement stringToReplace="autre" stringReplacement="autre_formation">
		<formatId>formation</formatId>
		<xpath>//cdm:infoBlock/cdm:extension/cdm:unrnpdc/cdm:lov[@info='typeDiplome']/@code</xpath>
	</replacement>


        <!-- Gestionnaire de liens morts et Crawler web -->

		<!-- Envoi de mail des fiches dont le lien est mort -->
		<sendMail>true</sendMail>

		<!-- Prise en charge du crawling -->
		<crawlingAuthorized>[INDEXING_CRAWLER_FULL_TEXT]</crawlingAuthorized>

		<!-- Nombre d'essais de crawling d'une fiche -->
		<attemptsCrawling>3</attemptsCrawling>

		<!-- Nombre maximum de liens a indexer -->
		<nbMaxLinksToIndex>50</nbMaxLinksToIndex>

		<!-- Entrepots -->
		<repository name="INP Toulouse Theses">
			<xpathToUrl format_id="dublin_core" value="//dc:relation" />
			<depth>1</depth>
			<allowedMimeTypes>application/pdf,application/vnd.ms-powerpoint,application/msword</allowedMimeTypes>
		</repository>

		<repository name="DSpace at MIT">
			<xpathToUrl format_id="dublin_core" value="//dc:identifier" />
			<depth>1</depth>
			<allowedMimeTypes>application/pdf,application/vnd.ms-powerpoint</allowedMimeTypes>
		</repository>

		<repository name="Université Numérique Ingénierie et Technologie">
			<xpathToUrl format_id="pedagogique" value="//lom:technical/lom:location" />
			<xpathToUrl format_id="dublin_core" value="//dc:identifier" />
			<urlsToNotCrawl></urlsToNotCrawl>
			<depth>1</depth>
			<allowedMimeTypes>application/pdf,application/vnd.ms-powerpoint,application/vnd.ms-excel,text/html</allowedMimeTypes>
		</repository>

		<repository name="ori-oai-workflow">
			<xpathToUrl format_id="dublin_core" value="//dc:identifier" />
			<xpathToUrl format_id="pedagogique" value="//lom:technical/lom:location" />
			<depth>1</depth>
			<allowedMimeTypes>application/pdf,application/vnd.ms-powerpoint,application/msword</allowedMimeTypes>
		</repository>

		<repository name="default">
			<xpathToUrl format_id="dublin_core" value="//dc:identifier" />
			<xpathToUrl format_id="pedagogique" value="//lom:technical/lom:location" />
			<depth>1</depth>
			<allowedMimeTypes>all</allowedMimeTypes>
		</repository>

		<!-- Entrepots a ne pas crawler -->
		<doNotCrawl></doNotCrawl>


    <!-- PARTIE A NE PAS MODIFIER PAR L'UTILISATEUR -->

        <!-- Nom des metadonnees communes aux modules ORI-OAI -->
        <static_metadatas>
            <doc_id>md-ori-oai-id</doc_id>
            <repository>md-ori-oai-repository</repository>
            <format>md-ori-oai-namespace</format>
            <datestamp>md-ori-oai-datestamp</datestamp>
            <score>md-ori-oai-score</score>
            <workflow_name>ori-oai-workflow</workflow_name>
            <notice_content>md-ori-oai-notice-content</notice_content>
            <crawled>md-ori-oai-crawled</crawled>
        </static_metadatas>

       	<!-- Valeurs possibles du champ crawled -->
	<staticCrawledValues>
		<notCrawled>no</notCrawled>
		<notSuccessful>failed</notSuccessful>
		<unreachable>unreachable</unreachable>
		<unreachables>some_unrechables</unreachables>
		<forbidden>forbidden</forbidden>
		<successful>yes</successful>
	</staticCrawledValues>

        <!-- Valeurs possibles du champ des liens brises -->
	<staticDeadlinkValues>
		<unknown>unknown</unknown>
		<empty>empty</empty>
		<active>active</active>
		<deadlink>deadlink</deadlink>
		<someDeadlinks>someDeadlinks</someDeadlinks>
	</staticDeadlinkValues>

</config>

Les parties static_metadatas ainsi que staticCrawledValues ne doivent pas être modifiées.

Le fichier se configure comme ceci:

Partie à modifier par l'utilisateur

indexDir

Chemin vers le répertoire dans lequel se trouve l'index, ici il s'agit de "[ORI_HOME]/data/indexes/index". Le répertoire "[ORI_HOME]/data/indexes" doit impérativement être créé mais le répertoire "Index" pourra normelement être créé par l'application au moment de l'indexation mais Il est possible en cas de problèmes que ce répertoire soit créé à la main.

proxyHost

Paramètre du proxy. Si l'application ne passe pas par un proxy, il suffit d'effacer le contenu de la balise.

proxyPort

Port du proxy. Si l'application ne passe pas par un proxy, il suffit d'effacer le contenu de la balise.

scheduleCrawler

Donne la date et l'heure du lancement du gestionnaire de liens. En laissant cette valeur à vide le gestionnaire ne se lancera pas automatiquement.

administratorMail

Mail de l'administrateur

smtpEtablissement

smtp de l'établissement

Options modifiables par l'utilisateur

liusConfigFile

Fichier de configuration LIUS qui sera utilisé par ORI-OAI-Indexing. Par défaut il s'agit de liusConfig.xml qui fonctionne à la base avec les formats DC, LOM, TEF et CDM. Ici on ne renseigne pas le chemin mais simplement le nom du fichier. C'est pourquoi le fichier doit obligatoirement se trouver dans le répertoire properties. Pour plus d'informations sur ce fichier veuillez consulter la section suivante nommée "Configuration de Lius".

noticesToNotIndex

Identifiants des fiches à ne pas indexer, séparés par une virgule. S'il est demandé d'indexer ou de supprimer une des fiches de cette liste, le module d'indexation ne fera aucune écriture dans l'index tout en indiquant que l'opération a été correctement effectuée.

scheduleOptimize

Valeur permettant de planifier l'optimisation de l'index. Il s'agit d'un CronTrigger de Quartz.

frequencyOfOptimization

Permet d'optimiser l'index dès que l'on a atteint le nombre de fiches indiqué. Il est préférable de ne pas dépasser 500 sous peine de rendre l'index inutilisable.

frequencyOfOptimizeState

Attente en millisecondes avant que le module d'indexation ne tente une optimisation de l'index.

queryTransformerClass

Chemin vers la classe permettant de modifier la requete pour retrouver plus de résultats pertinents dans l'index. La classe donnée par défaut sert à supprimer les accents dans la requête pour gérer au mieux les caractères spéciaux de la langue française. Il est possible de créer une nouvelle classe qui héritera de la classe abstraite "QueryTransform" dans le but de modifier autrement la requête.

format

Contient le namespace et le prefix d'une format de métadonnée.

sortField

Bloc permettant de trier les résultats indépendamment de leur format. Le bloc title_sort permet de trier par leur titre tous les éléments au format Dublin Core et LOM. Le bloc author_sort en fait de même pour l'auteur. Il est possible d'ajouter d'autres formats dans ces blocs ou de créer de nouveaux blocs. Pour cela il est nécessaire de donner un nom au bloc ainsi que le xpath correspondant à chaque format.

replacement

Contient les caractères à modifier dans une chaine provenant d'une métadonnée supplémentaire (md-ori-oai-...) ou provenant d'un xpath d'un format précis.

Le couple "format - replacement" permet de gérer au mieux l'indexation et la recherche de documents. Pour comprendre au mieux son utilité prenons l'exemple du code Dewey. Il s'agit en réalité d'une donnée composée de chiffres et d'espaces (ex : 125 17.1). Or cette donnée n'est pas indexée correctement à cause du caractère d'espacement. Donc pour résoudre ce problème, ce caractère est remplacé par un autre caractère, ici "_" au moment de l'indexation. Pour remplacer un caractère par un autre, deux éléments sont nécessaires; le premier est le ou les formats concernés par le remplacement. Le second est le xpath permettant de retrouver la donnée à modifier. Dans notre exemple le format est le LOM dont l'identifant de format est "pédagogique". La donnée indexée sera alors "125_17.1". Il faut noter que ces remplacements de caractères ne modifient en rien la forme de la requête lors d'une recherche, c'est-à-dire dans notre cas que l'on recherche le code Dewey "125 17.1" et non pas "125_17.1".


sendMail

Indique si le gestionnaire de liens brisés envoie ou non un mail contenant les liens n'ayant pas répondu. Deux valeurs sont possibles : true ou false.

crawlingAuthorized

Indique si le crawler web sera lancé ou non après le gestionnaire de liens brisés. Deux valeurs sont possibles : true ou false.

attemptsCrawling

Donne le nombre de tentatives de crawling d'une même fiche. A chaque nouveau lancement de crawling une nouvelle tentative sera faite sur les fiches non crawlées. Cette fonctionnalité est utile lorsque un serveur distant n'est pas joignable lors du crawling.

nbMaxLinksToIndex

Donne le nombre maximum de liens à indexer. Cette fonctionnalité est utile lors de l'indexation de texte intégral au format HTML.

repository

Contient les informations permettant :

  • au gestionnaire de liens brisés d'utiliser le bon xpath pour un entrepôt donné ;
  • au crawler d'appliquer l'indexation plein texte : profondeur de crawling, types MIME des ressources à indexer.

Pour plus d'informations, voir cette page .

doNotCrawl

Indique le nom des entrepôts à ne pas tenter de crawler.
Le nom d'un entrepôt se trouve dans la métadonnée "md-ori-oai-repository".
Pour l'obtenir :

  • aller dans l'onglet "Visualisation de toutes les fiches" de l'IHM de l'indexing ;
  • afficher une fiche de cet entrepôt (elle se présente sous la forme d'un tableau, avec le nom des métadonnées dans la première colonne) ;
  • et prendre la valeur de la métadonnée "md-ori-oai-repository(xxxx)" (2ème colonne).

Les noms des entrepôts doivent être séparés par des virgules.

Pour plus d'informations, voir cette page .


Pour plus d'informations concernant le crawling, veuillez consulter la page intitulée "Gestionnaire de liens brisés et Système de crawling ".

L'identifiant et le namespace sont modifiés lors de l'indexation. En effet le caractère ":" est remplacé par "@". Ceci est utile dans le cadre d'une recherche. Un requête de type Lucene utilise le caractère ":" pour séparer l'attribut de la valeur (ex: "nom : toto"). Donc la valeur ne peut pas comporter la caractère ":" ce qui explique la modification. Mais du point de vue de l'utilisateur, il n'y a aucune modification de caractères à réaliser. Ceci ne sert qu'en interne au module d'indexation et est donc transparent pour tous les autres modules.

Configuration de Lius


Le fichier de configuration de LIUS, appelé liusConfig.xml, se trouve dans le dossier "Properties".

Selection de l'analyseur


Il permet d'indexer le contenu dans une langue donnée. Il est défini dans la balise "analyzer", elle-même incluse dans la balise "properties". Par défaut, c'est l'analyseur de la langue française qui est choisi. Cet analyseur a été modifié dans le cadre du projet ORI-OAI pour prendre en compte plus de spécificités manquantes de la langue française comme les mots composés par exemple.

Les autres éléments de la balise "properties" n'ont pas à être modifés.

Ajout d'un nouveau format xml


Ceci peut-être utile si vous souhaitez indexer un format différent du DC, du LOM, du TEF ou du CDM, déjà présents par défaut. Pour se faire, ajoutez dans la balise "xml" le code suivant :

<xmlFile ns="[namespace]" setBoost="[valeur]">
    <indexer class="org.orioai.indexing.index.indexer.OriOaiXmlFileIndexer">
        <mime>text/xml</mime>
    </indexer>
    <fields>
    </fields>
</xmlFile>

namespace

Il s'agit du namespace correspondant au format

valeur

Valeur décimale de boost. Le maximum est 2.0. L'attribut setBoost permet de prioriser un format par rapport à un autre. Cet attribut est optionnel; si il n'est pas ajouté, la valeur de boost sera 1.0. Le boost a une influence sur le calcul de la pertinence d'un résultat de la recherche

Ajouter un nouveau format ne suffit pas à indexer le contenu d'une fiche. Il faut également ajouter les xpaths à indexer pour le format (voir section 5.2.3).

Ajout d'un nouveau xpath à indexer dans le format


Ceci peut-être utile si vous souhaitez indexer une métadonnée différente de celles présentes par défaut dans les formats DC, LOM, TEF, CDM ou d'un nouveau format que vous avez créé.

Pour se faire, trois étapes sont nécessaires (notez que le fichier liusConfig.xml est divisé en trois parties, correspondant aux trois balises "index", "search" et "searchResult") :

  • Dans la balise "fields" (elle-même incluse dans la balise "index"), ajoutez ceci pour le format concerné :
    <luceneField name="[xpath_encodé_UTF8]" xpathSelect="[xpath]" type="[type]" setBoost="[valeur]"/>
    

    xpath

    Il s'agit du xpath vers la métadonnée que l'on souhaite indexer.

    xpath_encodé_UTF8

    Le nom de ce champ est par convention dans ORI-OAI le xpath qui a été encodé grâce à la méthode java.net.UrlEncoder.encode.

    type

    Cet attribut indique le type de métadonnée. Plusieurs types sont possibles : "Text", "concatDate" s'il s'agit d'une date et "vcard" si la métadonnée contient une vCard.

    valeur

    Valeur décimale de boost. Le maximum est 2.0. L'attribut setBoost permet de prioriser une métadonnée par rapport à une autre. Cet attribut est optionnel; s'il n'est pas ajouté, la valeur de boost sera 1.0. Le boost a une influence sur le calcul de la pertinence d'un résultat de la recherche

    L'attribut "setBoost" peut être à la fois dans la balise "format" et dans la balise "luceneField" d'un format.

Pour vous faciliter l'encodage d'un xpath en UTF-8, un nouvel onglet appelé "Métadonnées et UTF-8" est présent dans le partie Visualisation du module.

  • Dans la balise "searchFields" (elle-même incluse dans la balise "search"), créez une nouvelle ligne et ajoutez-y xpath_encodé_UTF8 précédé d'une virgule.

    La virgule est indispensable au bon fonctionnement du module.

  • Dans la balise "fieldsToDisplay" (elle-même incluse dans la balise "searchResult"), ajoutez ceci :
    <luceneField name="[xpath_encodé_UTF8]" label="[xpath]"/>
    

    xpath

    Il s'agit du xpath vers la métadonnée que l'on souhaite indexer.

    xpath_encodé_UTF8

    Le nom de ce champ est par convention dans ORI-OAI le xpath qui a été encodé grâce à la méthode java.net.UrlEncoder.encode.

Il vous est également possible d'utiliser les xpaths de type substring tels que : substring(//dc:date,1,4) dans le module d'indexation.

Système de surlignage


Il permet de mettre en valeur les résultats de votre recherche.
Pour activer/désactiver ce système il suffit de remplir l'attribut setHighlighter de la balise fieldsToDisplay à true/false (vers la fin du fichier).

  • No labels