sdx-users
[Top][All Lists]
Advanced

[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







reply via email to

[Prev in Thread] Current Thread [Next in Thread]