Moteur d'indexation inJAC
Installation

1. Pré-requis
2. Changements
3. Installation
  3.1. déployer l'application
  3.2. Configuration générale
  3.3. Configuration de l'indexation OAI
  3.4. Niveau de débogage

# 1. Pré-requis

Cette application est basée sur le projet LIUS de l'université de Laval au Québec, qui s'appuie sur la version 1.4.3 de Lucene en l'enrichissant de fonctionnalités pour exploiter une plus large palette de format de fichiers. Elle représente le module indexation de l'application inJAC, utilisé à partir du moteur de rendu.

Attention : à partir de la version 1.1 il faut utiliser le moteur de rendu 2.4 ou supérieur.

Cette application indexe le contenu d'un espace inJAC, et a donc besoin de se connecter à un Serveur Webdav opérationnel, avec un espace inJac valide.

Toutefois, dans le cadre d'une utilisation avec un moissonneur OAI, le serveur WEBDAV n'est pas requis.

Sur la machine même, un environnement Java (JRE ou JDK), version 1.4.X à partir du 1.4.2(non testé sur JDK 1.5), ainsi qu'un moteur de servlet/jsp (TOMCAT 5.0.28 ou supérieur) doivent être préalablement installés.

# 2. Changements

- Version 1.3

  - outil de merge d'index configurable par fichier xml (voir document d'utilisation, section "Fusion d'index")

  - amélioration de la visualisation d'un index (navigation par pages, visualisation des champs indexés)

  - repackaging avec fichiers de compilation/déploiement ANT

  - modification du flux de recherche /search (voir changelog)

  - Nouvelles propriétés : oai.indexing.class, oai.encoding, merge.config, merge.liusConfig, maxPageCount, widget.titlebar, widget.content (voir section Configuratrion Générale)

  - Renommage de propriétés : exist.urlField.name devient oai.urlField.name et exist.Config, oai.Config (voir section Configuratrion Générale)

  - les chemins indiqués par oai.Config et liusConfigFile sont désormais relatifs à l'application (ex : ex : WEB-INF/configs/xx.xml)

- Version 1.2

  - ajout des contextes indexRecord et indexStringRecord pour l'indexation depuis une application distante cliente (de type moissonneur OAI-ori-harvester) d'enregistrement OAI (voir section Indexation OAI)

  - remplacement des librairies jaxen-core.jar et jaxen-jdom.jar par jaxen-1.1-beta-9.jar

  - restructuration des packages Java

  - ajout de propriétés dans le fichier de configuration indexation.properties :

    - field.type.keyword pour définir quelles MD Webdav sont indexées en tant que champ Lucene de type Keyword

    - renderContext : URI utilisée pour le rendu des documents inJAC.

    - exist.Config : fichier de configuration du mapping xml des différents formats pour l'indexation OAI

    - exist.urlField.name : nom du champ défini dans le fichier exist.Config utilisé comme URL d'accès au document dans les résultats de recherche

  - ajout de l'attribut namespace dans la balise <hit> du resultat XML (SearchServlet), définissant le type de métadonnées associées au document stocké dans inJAC.

- Version 1.1

  - fil RSS renvoyant une liste des derniers documents indexés(voir documentation d'utilisation)

  - retour des résultats d'une requête en XML ou en HTML et corrections liées à l'encodage (voir documentation d'utilisation).

  - possibilité de paramétrer la liste des métadonnées que l'on veut dans les résultats(voir documentation d'utilisation)

  - paramétrage des métadonnées correspondant au titre et à la description des documents retournés.

# 3. Installation

## 3.1. déployer l'application

Le déploiement s'effectue en décompressant l'archive dans un répertoire accueillant une application WEB Java( répertoire /webapps de Tomcat par exemple).

## 3.2. Configuration générale

Une fois décompressé, créer le fichier indexation.properties à partir du fichier d'exemple indexation.example.properties situé dans injac-indexing/WEB-INF/classes :

    #filesystem path to repository for created index
    indexPath=F:/injac-indexes
    #default values filling create index form
    defaultUrl=http://slide-priv:8080/slide/files/injac/injacRoot
    defaultUser=admin
    #warning : filling this property makes it visible for any user connecting
    # to this application !
    # if accessible on public network, better use a dummy value
    defaultPassword=password
    #default mode for metadata indexing : (none|all|injac)
    metadata-mode=all
    # config file for LIUS indexer(full path)
    liusConfigFile=/appli/java/injac/tomcat/injac-indexing/WEB-INF/configs/liusFilesConfig.xml

    # set to true forces ssl connection
    forceSSL=true
    #leave blank if default port 443, else prefix with colon (i.e :8443)
    httpsPort=:8443
    #warning : setting this property to on makes visible the content of this file for any user accessing this application !
    debug=off

    # -- RESULT SETTINGS --

    #list of metadata names used in different formats configured in Canal Stockage for title and desc
    titleMD=title,gen_title
    descriptionMD=description,gen_description
    #list of indexed MD to include in results (could be overriden by request parameter)
    resultMD=document-state,description

    #List of md to be indexed as Lucene keyword type fields
    field.type.keyword=

    # -- URLs params --
    # URL of inJac renderer. If not defined URLs will be WEBDAV's ones(overridable by request param)
    renderURL=http://injac.monEtablissement.fr/injac
    #render context : /nav for browsing mode, /doc for document-only mode
    renderContext=/nav

    # upper node of inJac spaces. If not defined URLs will be WEBDAV's ones(overridable by request param)
    upnode=injacRoot
    #extensions for html rendering files
    intDocs=xml html htm txt jpg png gif XML HTML HTM TXT JPG PNG GIF
    #css file for html results
    cssFile=css/results-skin-esup1.css
    #max document per page when viewing an index
    maxPageCount=100
    #elements for widgets
    widget.titlebar=/appli/java/injac/tomcat/webapps/injac-indexing/widgets/titlebar.html
    widget.content=/appli/java/injac/tomcat/webapps/injac-indexing/widgets/content.html

    #config file for indexing OAI records (full path)
    oai.Config=/appli/java/injac/tomcat/injac-indexing/WEB-INF/configs/liusOAIConfig.xml
    oai.urlField.name=renderURL
    #optimize index frequency
    oai.optimize.frequency=100
    # class for indexing  from OAI string record - beware to have enough jvm memory if using RAM indexing
    oai.indexing.class=org.injac.indexing.index.oaipmh.StringOAIIndexing
    # OAI records encoding type
    oai.encoding=UTF-8
    # default configuration file for merge command
    merge.config=/appli/java/injac/tomcat/injac-indexing/WEB-INF/configs/mergeDC.xml
    # config file for merging index
    merge.liusConfig=/appli/java/injac/tomcat/injac-indexing/WEB-INF/configs/liusFilesConfig.xml

Attention : Sous Linux, un espace à la fin d'une ligne de propriété peut-être fatal ! Vérifiez que les paramètres sont immédiatement suivis d'un retour à la ligne !

Description des paramètres de configuration :

- indexPath

  Chemin système désignant le répertoire où vont être générés les index.

- Informations pour pré-remplir le formulaire de création d'index

  - defaultUrl : URL WEBDAV de l'espace racine à indexer

  - defaultUser : nom d'utilisateur pour l'accès à l'espace racine

  - defaultPassword : mot de passe pour l'accès à l'espace racine

    Attention : La définition du mot de passe dans le fichier de configuration doit s'utiliser uniquement dans le cas d'un réseau privé, car il pourra être lu en éditant la source de la page. Si l'accès se fait par un réseau public comme Internet, il vaut mieux mettre un mot de passe fictif.

  - metadata-mode : mode d'indexation des métadonnées

    - none : aucune métadonnée n'est indexée

    - all : toutes les métadonnées inJAC sont indexées(dont le nom d'espace est "INJAC:")

    - injac : seules les métadonnées inJAC de l'espace racine sont indexées

- liusConfigFile

  Fichier pour configurer l'indexation (Chemin absolu). Un fichier est défini par défaut. Voir la documentation en ligne du projet LIUS concernant le fichier de configuration.

- forceSSL

  Force l'utlisation de SSL lors de la création d'index, si l'accès se fait à travers un réseau public. Ceci garanti le cryptage des informations de connexion.

- httpsPort

  Port utilisé dans le cas ou forceSSL est égal à "true"

- debug

  Permet d'obtenir des informations de déboggage sur la page HTML :

  - "on" = mode deboggage

  - "off" = mode normal.

- field.type.keyword : liste des métadonnées devant être indexées comme des mots-clés, c'est-à-dire qui sont indexés d'une seule pièce, au contraire des autres métadonnées qui sont indexées comme des textes, et découpés en mots séparés.

- paramétrages des résultats

  - titleMD

    Liste des métadonnées contenant le titre du document dans les différents formats de saisie du Canal de Stockage

  - descriptionMD

    Liste des métadonnées contenant la description du document dans les différents formats de saisie du Canal de Stockage

  - resultMD

    Liste des métadonnées, séparées par des virgules, à renvoyer dans les résultats de recherche (voir la documentation d'utilisation)

  - cssFile

    Fichier CSS définissant le style pour le rendu HTML des résultats de recherche faits avec l'URI htmlSearch (voir la documentation d'utilisation).

  - maxPageCount

    Nombre de documents listés par page (pour la visualisation d'un index).

- paramétrage des widgets

  - widget.titlebar

    Section de code HTML définissant la barre de titre d'un widget.

  - widget.content

    Section de code HTML définissant le contenu d'un widget.

- paramétrages des liens de rendu des documents inJAC :

  - renderURL : URL de l'instance du module de navigation inJAC liés à l'espace du serveur Webdav indexé.

  - renderContext : Les valeurs possibles sont :

    - /nav = document avec contexte de navigation

    - /doc = document seul

- paramètres de l'indexation OAI :

  - oai.Config : nom du ficher de configuration (chemin absolu) pour l'indexation de fiches(record) OAI.

  - oai.urlField.name : nom du champ défini dans le fichier exist.Config utilisé comme URL d'accès au document dans les résultats de recherche.

  - oai.optimize.frequency fréquence d'optimisation (en nombre de documents)

  - oai.indexing.class classe utilisée pour l'indexation OAI. Deux classes sont fournies :

    - org.injac.indexing.index.oaipmh.StringOAIIndexing

    - org.injac.indexing.index.oaipmh.RamStringOAIIndexing

  - oai.encoding : type d'encodage des enregistrements OAI envoyés par le moissonneur

- paramètres de l'outil de fusion(merge) d'index :

  - merge.config : fichier de configuration utilisé lorsque la commande merge est invoquée sans arguments

  - merge.liusConfig : fichier de configuration utilisé pour la fusion d'index.

## 3.3. Configuration de l'indexation OAI

Le fichier liusOAIConfig.xml défini par défaut pour la propriété oai.Config sert à recenser les métadonnées issues d'une section XML d'un enregistrement OAI que l'on veut indexer dans des champs Lucene. Une balise <xmlFile> est définie pour chaque type de métadonnée que l'on veut traiter, identifié par un attribut ns (namespace) :

    <xmlFile ns="http://ltsc.ieee.org/xsd/LOM">

Dans le fichier fourni deux formats sont définis : LOM et Dublin Core.

Chaque balise <luceneField> contient un attribut name qui défini le nom du champ indexé, un attribut xpathSelect qui cible quel élément XML doit être utilisé pour la valeur du champ, et enfin un attribut type :

    <luceneField name="renderURL"
    xpathSelect="//lom:technical/lom:location" type="Keyword" />
    <luceneField name="title"
    xpathSelect="//lom:general/lom:title" type="Text" />

## 3.4. Niveau de débogage

Le niveau de débogage peut être modifié en éditant le fichier WEB-INF\classes\log4j.properties. Les niveaux disponibles sont : debug, info, warn, error et fatal, du plus prolixe au plus concis. Le niveau de déboggage influe sur les performances de l'application.

Note : il faut également adapter le chemin du fichier de log, à la ligne :

    log4j.appender.R.File=E:/Java/jakarta-tomcat-5.0.28/logs/injac-index.log