[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sdx-users] Choix de l'analyseur dynamiquement au moment de l'indexation
From: |
Pierre Dittgen |
Subject: |
[sdx-users] Choix de l'analyseur dynamiquement au moment de l'indexation |
Date: |
Sat, 20 Dec 2003 14:02:07 +0100 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 |
Bonjour,
Je travaille sur une application multilingue avec SDX2.2. Dans une même
base, je stocke des documents en plusieurs langues (français, anglais et
arabe).
Pour simplifier, ma structure de document est la suivante :
<doc id="monId">
<lang>maLangue</lang>
<description>Ma description dans ma langue</description>
</doc>
Pour utiliser l'analyseur adapté (celui correspondant à la langue du
document) lors de l'indexation, j'ai créé un champ SDX description par
langue. Ainsi mon application.xconf contient :
<sdx:fieldList xml:lang="fr-FR" variant="">
<sdx:field name="description_fr_FR" type="word" brief="true"
xml:lang="fr-FR"/>
<sdx:field name="description_en_US" type="word" brief="true"
xml:lang="en-US"/>
<sdx:field name="description_ar_EG" type="word" brief="true"
xml:lang="ar-EG"/>
</sdx:fieldList>
Dans ma XSL d'indexation, en fonction de la langue du document, je
produis un des trois champs.
Ex :
<doc id="1">
<lang>en-US</lang>
<description>This is very interesting</description>
</doc>
donne après traitement :
<sdx:document id="1">
<sdx:field name="description_en_US">This is very interesting</sdx:field>
</sdx:document>
Ensuite, dans mon application, le formulaire de recherche choisit le
champ de recherche (description_*) en fonction de la langue d'interface.
Cela fonctionne mais c'est un peu lourd à gérer, le nombre de champs SDX
est multiplié par le nombre de langues de l'application.
Ce qui serait vraiment intéressant serait que le choix de l'analyseur
pour l'indexation soit plus dynamique qu'aujourd'hui (i.e. pas fixé dans
le fichier application.xconf). Ce choix dépendrait d'attribut xml:lang
positionné soit sur sdx:document ou sdx:field à la sortie de la XSL
d'indexation.
Ainsi
<doc id="1">
<lang>en-US</lang>
<description>This is very interesting</description>
</doc>
donnerait après indexation :
<sdx:document id="1" xml:lang="en-US">
<sdx:field name="description">This is very interesting</sdx:field>
</sdx:document>
C'est l'analyseur anglais qui est utilisé (choix fait d'après la valeur
de l'attribut xml:lang de l'élément sdx:document).
Ceci éviterait la multiplication des champs SDX déclarés et permettrait
une plus grande "dynamicité" lors du choix de l'analyseur.
Est-ce possible de le faire actuellement (en jouant sur le pipeline
dynamique d'indexation) ? Sinon, est-ce que c'est une fonctionnalité qui
est prévue, souhaitable ?
Pierre
--
Pierre Dittgen, address@hidden
PASS Technologie http://www.pass-tech.fr
- [sdx-users] Choix de l'analyseur dynamiquement au moment de l'indexation,
Pierre Dittgen <=