Search - Installation avancée

Navigation dans les fichiers de configuration

Avant de procéder à l'installation avancée, il est conseillé de consulter le document "Navigation dans les fichiers" pour mieux comprendre la structure des différents fichiers.

Ce mode d'installation vous permet dès le départ une installation et des configurations poussées du module ori-oai-search.

Le premier fichier à prendre en compte est init-build.properties qui est celui utilisé pour la configuration du déploiement de l'application

La configuration générale du projet se fait dans le dossier conf. Ce dossier est découpé comme suit (les autres fichiers ne sont pas à modifier lors du déploiement) :

  • le dossier properties qui contient tous les fichiers de configuration généraux à l'application
  • le dossier search contient toutes les configurations proposées par ORI-OAI et la communauté
  • le dossier skins contient tous les skins proposés par défaut

Le dossier conf/properties contenant les fichiers de paramètres principaux est composé comme ceci:

  • Le fichier services.properties permet de définir les paramètres de connexion aux autres modules ORI-OAI
  • Le fichier log4j.properties permet de configurer l'emplacement et le niveau de logs
  • Le fichier ehcache.xml définit les propriétés de gestion des différents caches dans le module
  • Le dossier i18n contient les bundles de messages génériques dans toutes les langues gérées par l'application
  • Le fichier vues.properties est lié au développement et n'est pas à modifier

Voici le plan de ce chapitre:

Configuration minimale

Le module ori-oai-search est pré-configuré pour répondre au mieux aux attentes des différents établissements. Lors du premier déploiement, vous n'avez donc qu'à

  • éditer le fichier de déploiement init-build.properties
  • éditer le fichier services.properties pour vous connecter aux autres modules du projet

Modification de init-build.properties

Dans le cas où vous ne voulez pas bénéficier de la configuration par ori-oai-commons-quick-install, il est nécessaire de commenter la variable commons.parameters.central.file.url dans ce fichier comme ceci:

#URL du fichier contenant toutes les propriétés pour ce module en installation rapide
#commons.parameters.central.file.url=[COMMONS_PARAMETERS_CENTRAL_FILE_URL]

Les autres paramètres de ce fichier sont:
deploy.home

Dossier webapps dans lequel vous voulez déployer l'application. En mode portlet, ce doit être le même que celui où est déployé votre contexte uPortal.

app.name.deploy

Nom du contexte que vous voulez donner à l'application.

deploy.type

Ce paramètre permet de dire si on déploie le module en mode servlet ou en mode portlet.
Le mode servlet permet de déployer le module dans un environnement standalone en dehors de tout ENT ou autre moteur de portlets.
Le module ori-oai-search est aussi disponible en version portlet. Il peut donc être intégré dans tout moteur de portlet comme un ENT ou un CMS.

configuration.folder

Ce paramètre permet de définir la configuration que vous utiliserez pour les interfaces. Il correspond à un dossier de configuration; il faut aller dans le dossier conf/search pour voir toutes les configurations proposées.
Il existe plusieurs configurations de base possibles (que vous pouvez adapter par la suite):

default_exemple-complet

Configuration qui offre 6 menus de recherche: les ressources au format Dublin Core, LOM, CDM, Thèses, Archives ouvertes, et enfin un menu permettant la recherche croisée sur tous les formats.

default_unt

Une configuration proposée pour les UNT. Elle permet des recherches thématiques, de nouveautés et avancées sur toutes les ressources des établissements partenaires.

default_etab-pedago

Permet de faire des recherches uniquement sur les ressources documentaires au format Dublin Core et LOM (locales et distantes).

default_theses

Permet de faire des recherches uniquement sur les thèses au format TEF.

default_ao

Permet de faire des recherches uniquement sur les archives ouvertes.

default_unr-formations

Permet la recherche parmis des formations au format CDM.

contrib_portlet-uvhc

Configuration portlet profilée proposée à l'université de Valenciennes pour les ressources pédagogiques et une déclinaison locale du format dublin core pour le référencement des documents techniques du service informatique.

contrib_unr-npdc

Configuration proposée dans l'UNR Nord-Pas de Calais pour les ressources pédagogiques et l'offre de formation.

Pour utiliser une de ces configurations, saisissez le nom du dossier contenant la configuration que vous voulez utiliser dans le paramètre configuration.folder.

D'autres configurations proposées par les contributeurs de la communauté ORI-OAI sont aussi disponibles. Reportez-vous à la page suivante de notre site.

skin.folder

Le dossier contenant le thème (styles et images) utilisé pour le déploiement.

D'autres skins proposés par les contributeurs de la communauté ORI-OAI sont aussi disponibles. Reportez-vous à la page suivante de notre site.

Configurer la connexion aux autres modules

Dans le cadre de la communication entre ORI-OAI-search et les autres modules, il suffit de configurer les 2 paramètres suivants dans le fichier conf/properties/services.properties :
indexing.ws.wsdlDocumentUrl

Correspond à l'adresse du Web service en frontal du module ORI-OAI-indexing. Sa valeur est du type http:// [HOST_INDEXING] :[PORT_INDEXING]/[CONTEXT_INDEXING]/xfire/IndexingService?WSDL

vocabulary.ws.wsdlDocumentUrl

Cette valeur est l'adresse du Web service en frontal du module ORI-OAI-vocabulary. La valeur est de type http:// [HOST_VOCABULARY] :[PORT_VOCABULARY]/[CONTEXT_VOCABULARY]/xfire/OriVocabularyService?WSDL

Configuration plus avancée

Connexion à un gestionnaire de statistiques

Il est possible d'utiliser un outil de statistique (Piwik ou Google analytics) dans ori-oai-search (uniquement en mode servlet). Pour cela, il faut se reporter au fichier webapp/WEB-INF/stylesheets/analyser-servlet.jsp si vous n'utilisez pas ori-oai-commons-quick-install pour l'installation de votre module.

Si vous souhaitez vous connecter à Piwik. Il faudra remplacer [SEARCH_ANALYSER_PIWIK_URL] par l'URL de votre serveur Piwik. Exemple:

<c:set var="piwikSiteUrl" value="mon-serveur.univ.fr/piwik/"/>

Si vous souhaitez vous connecter à Google analytics. Il faudra remplacer [SEARCH_ANALYSER_GOOGLE_WEB_SITE_ID] par l'identifiant qui vous est fourni par Google de la forme "UA-xxxxxxx-x". Exemple:

<c:set var="googleAnalyticsSiteId" value="UA-1234567-8"/>

Chargement des vocabulaires au démarrage du Tomcat

Vous pouvez choisir de charger les vocabulaires utilisés par le module ori-oai-search au moment du démarrage du serveur Tomcat.

Pour cela, éditez le fichier webapp/WEB-INF/applicationContext-common.xml.

Et remplacez la chaîne [SEARCH_INIT_VOCABULARY_CACHE] par true:

<bean id="initVocabulariesCache" class="org.orioai.search.vocabulary.init.CreateVocabularyCache" init-method="initCaches">
	<property name="init">
		<value>true</value>
	</property>
	...
</bean>

Une configuration pour tester le module seul

Dans le cas d'un premier déploiement, il est prévu de pouvoir tester le module de recherche indépendamment des autres modules. En effet, ceci permet de vérifier que l'application est bien configurée et bien déployée sans dépendre des autres entités du système. Cette manipulation fait que tous les vocabulaires et resultats de recherche sont statiques et avec des libellés sous forme de tests.

Pour faire cette manipulation, il faut changer une configuration des beans Spring. Cette configuration concerne les classes utilisées pour la connexion au module ORI-OAI-vocabulary et celle pour la recherche à partir de ORI-OAI-indexing. Vous devez donc à la place utiliser des classes "Mock" c'est-à-dire des classes qui simuleront les connexions aux autres modules.

Editez le fichier webapp/WEB-INF/applicationContext-common.xml.

Recherchez l'occurence du terme id="vocabulary-service". Vous trouvez alors la configuration du bean Spring désiré. Il suffit de commenter la configuration du bean correspondant à l'implémentation et de dé-commenter celui appelant la classe de test comme suit:

<!-- ******************************************************* -->
<!-- implémentation de la couche service pour le vocabulaire -->

<!-- Implementation -->
<!--bean id="vocabulary-service" class="org.orioai.search.vocabulary.service.VocabularyServiceImpl">
	<property name="configurationService">
		<ref local="configuration-service"/>
	</property>
	<property name="oriOaiVocabularyService">
		<ref local="ori-oai-vocabulary-service"/>
	</property>
</bean-->

<!-- Classe de test -->
<bean id="vocabulary-service" class="org.orioai.search.vocabulary.service.MockVocabularyServiceImpl">
</bean>
<!-- ******************************************************* -->

Ensuite, vous devez faire la même chose pour le bean servant à la recherche en cherchant l'occurance du terme id="search-service" comme suit:

<!-- ******************************************************* -->
<!-- implémentation de la couche service pour la recherche dans le moteur de recherche -->

<!-- Implementation -->
<bean id="search-service" class="org.orioai.search.indexer.search.service.LuceneSearchServiceImpl">
	<property name="configurationService">
		<ref local="configuration-service"/>
	</property>
</bean>

<!-- Classe de test -->
<!--bean id="search-service" class="org.orioai.search.indexer.search.service.MockSearchServiceImpl">
	<property name="configurationService">
		<ref local="configuration-service"/>
	</property>
</bean-->
<!-- ******************************************************* -->

Déploiement de l'application

L'application a été développée et testée à partir d'une JVM 1.6 et d'un Tomcat 6. Notez que l'installation de ANT (http://ant.apache.org/) est un pré-requis au déploiement.

Important

Pour plusieurs déploiements du module ori-oai-search dans un même Tomcat, il est nécessaire d'affecter une clef différente à chaque instance.

Pour cela, dans le fichier webapp/WEB-INF/web_servlet.xml si on est en mode de déploiement servlet, ou webapp/WEB-INF/web_portlet.xml si on est en portlet, il faut affecter une valeur unique au paramètre webAppRootKey dans la partie suivante:

<context-param>
	<param-name>webAppRootKey</param-name>
	<param-value>ori-oai-search.servlet</param-value>
</context-param>

Important

Il est nécessaire de spécifier au Tomcat que vous utilisez l'encodage UTF-8 pour tous les modules. Pour cela, vous éditez le fichier [TOMCAT_HOME]/bin/startup.sh (startup.bat sous Windows) ou [TOMCAT_HOME]/bin/catalina.sh (catalina.bat sous Windows) et y ajoutez la commande suivante:

export CATALINA_OPTS="-Dfile.encoding=UTF-8 $CATALINA_OPTS"

(sous Unix)

set CATALINA_OPTS="-Dfile.encoding=UTF-8 %CATALINA_OPTS%"

(sous Windows)

Une fois cette configuration faite, executez les commandes suivantes:

ant init-build

initialisera le fichier build.properties

ant all

déploiera l'application dans le serveur Tomcat. Il n'y a plus qu'à démarrer ce serveur.

Précisions sur le mode portlet

Le module ori-oai-search est aussi disponible en version portlet. Il peut donc être intégré dans tout moteur de portlet comme un ENT ou un CMS.

Intégration dans ESUP Portail

Vous devez mentionner ce contexte dans le fichier [TOMCAT_HOME]/conf/server.xml . Par exemple:

<Context path="/ori-oai-search" docBase="C:/esupdev/esupdev-2.5/webapps/ori-oai-search" crossContext="true" reloadable="false" />

Enfin, vous devez publier cette portlet dans votre ENT. Voici les paramètres à utiliser:

  • Channel type : Portlet
  • Channel Functional Name : ori-oai-search
  • Portlet definition ID : ori-oai-search.searchportlet (modifiée depuis la version 1.6.0)
Intégration dans infoglue

Le CMS infoglue supportant la norme des portlets JSR-168, il est possible d'intégrer le module ori-oai-search en mode portlet sous réserve d'avoir accepté l'option JSR-168 lors de l'installation. Ceci est intéressant pour associer dans un unique site des pages à la fois statiques mais aussi dynamiques comme les interfaces de recherche.

Pour cela, vous devez tout d'abord supprimer ou commenter tout le bloc comprenant les balises <user-attribute> dans le fichier webapp/WEB-INF/portlet.xml.

Il faut ensuite créer une archive ori-oai-search.war de votre module après l'avoir correctement configuré. Il est conseillé de commencer par un déploiement en mode servlet au préalable afin de bien s'assurer que les configurations apportées sont correctes et définitves. La création de l'archive se fait en utilisant la commande :

ant buildwar-portlet

Le fichier généré ori-oai-search.war se trouve alors à la racine de votre module.

Important

L'encodage des formulaires de votre portlet doit être utf-8 dans infoglue. Vous devez donc fixer la valeur utf-8 à la propriété Input character encoding (deliver). Celle-ci est accessible depuis le menu Administration, Application settings et Editer propriétés.

Vous pouvez maintenant déployer cette portlet dans infoglue:

  • Allez dans l'onglet Administration
  • Puis le menu Portlets
  • Choisissez Nouveau portlet et donnez les paramètres suivants
    • Nom du contexte : ori-oai-search
    • Le fichier War contenant les portlets : le fichier ori-oai-search.war généré
      Votre portlet a alors été ajoutée à infoglue.
  • Pour prévenir tout problème de déploiement, il est conseillé de redémarrer votre serveur à cette étape

Vous pouvez maintenant tester cette intégration.
Créer un template dans l'onglet Contenu :

  • Choisissez Nouveau contenu puis utilisez les paramètres suivants:
    • Nom du contenu : ori-oai-search-portlet
    • Type de contenu : HTMLTemplate
  • Dans les propriétés qui suivent, renseignez:
    • Name : ori-oai-search-portlet
    • Template HTML :
      #set($portletName = "ori-oai-search.search")
      #set($myPortlet = $portalLogic.getPortletWindow($portletName, "ori-oai-search.searchportlet"))
      $myPortlet.setAttribute("componentId", "ori-oai-search")
      $myPortlet.setAttribute("languageCode", $templateLogic.locale.language)
      $myPortlet.setAttribute("siteNodeId", $templateLogic.siteNodeId)
      
      <html>
      	<head>
      		<link href="http://[HOST_SEARCH]:[PORT_SEARCH]/[CONTEXT_SEARCH]/css/ori-oai-search.css" rel="stylesheet" type="text/css"/>
      	</head>
      	<body>
      		$myPortlet.render()
      	</body>
      </html>
      

Notez qu'il est impératif d'ajouter les tags html, head et body car la portlet ne génère pas ce code. Vous devez aussi faire référence à la bonne CSS en adaptant l'URL proposée dans l'exemple.

  • Group Name : Basic Pages
  • Enregistrez et publiez votre template

Vous devez maintenant créer une structure pour accéder à la portlet dans l'onglet Structure :

  • Créer un Nouveau noeud avec les paramètres suivants:
    • Nom du noeud : ori-oai-search
    • SiteNode type : ComponentPage
  • Enregistrez
  • Choisissez OUI dans Désactive le cache des pages afin de signifier que vous avez une application dynamique
  • Enregistrez
  • Cliquez sur affichage des compsants
  • Puis Click here to assign one or choose a page template below.
  • Choisissez le composant ori-oai-search-portlet
  • Revenez sur couverture pour Enregistrer
  • Vous pouvez maintenant Prévisualiser le noeud et tester l'application

Ce paragraphe n'a montré qu'une configuration d'exemple d'intégration du module pour du test uniquement. Il est nécessaire d'adapter ces configurations à votre contexte d'utilisation dans infoglue.

Premiers tests de l'application

Une fois que vous aurez déployé l'application avec succès à partir de cette configuration, vous devrez vous brancher progressivement aux autres modules en éditant le fichier webapp/WEB-INF/applicationContext-common.xml.

La première étape consiste donc à éditer le bean vocabulary-service en commentant la classe de test et en dé-commentant la classe d'implémentation. Vous pouvez alors déployer à nouveau l'application et tester la connexion au module ORI-OAI-vocabulary. A cette étape, vous pouvez naviguer dans les recherches thématiques depuis l'interface de recherche et avoir des valeurs réélles dans les menus déroulants des recherches avancées.

La seconde étape permet de vous connecter au module ORI-OAI-indexing en éditant le bean search-service et en faisant une inversion de commentaires. Vous pouvez alors déployer l'application et tester des recherches.

Lorsque toutes ces étapes ont été validées, vous travaillez avec une version basique pré-configurée du module ORI-OAI-search.
Vous pouvez tester cette version en vous reportant à la documentation suivante.

Vous pouvez alors personnaliser les configurations et interfaces de recherche comme il est décrit dans la suite du document.

  • No labels