sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sdx-users] Navigation dans une liste hiérarchisée


From: Vincent.Leconte
Subject: [sdx-users] Navigation dans une liste hiérarchisée
Date: Wed, 12 Jul 2006 15:15:24 +0200

 
Bonjour,

Je cherche à afficher une liste de termes de manière hiérarchique avec SDX
 

Ma première idée consistait à crééer un critère par niveau de hiérarchie par 
exemple Materiaux_1=Metal Materiaux_2=fer etc..
Ensuite je lance la liste sur Materiaux_1 puis celle sur Materiaux_2 avec un 
filtre sur Materiaux_1 etc.. Ça marche impec sauf si on a plusieurs occurrence 
de matériaux sur une notice (par exemple un objet en bois et en fer)

Après quoi je commence à m'interesser aux thésaurus de SDX, ça a l'air d'être 
fait pour gérer ce genre de chose (entre autre).

Sauf que j'arrive pas à faire marcher mon Thésaurus :-(
En premier j'ai créé un fichier materiaux.xml qui ressemble à ça :

<?xml version="1.0" encoding="utf-8"?>
<thesaurus xmlns="http://sdx.culture.fr/thesaurus/1.0"; id="materiaux">
 <concept id="m001" xml:lang="fr">
    <term>Bois</term>
    <relations>
        <relation type="NT" ref="m008"/>
    </relations>
 </concept>
 [...]
 <concept id="m006" xml:lang="fr">
    <term>Métal</term>
    <relations>
        <relation type="NT" ref="m027"/>
        <relation type="NT" ref="m028"/>
        <relation type="NT" ref="m029"/>
        <relation type="NT" ref="m030"/>
        <relation type="NT" ref="m031"/>
        <relation type="NT" ref="m032"/>
    </relations>
 </concept>
 <concept id="m008" xml:lang="fr">
    <term>Bois feuillus</term>
    <relations>
        <relation type="BT" ref="m001"/>
        <relation type="BTS" ref="m001"/>
    </relations>
 </concept>
[...]
 <concept id="m027" xml:lang="fr">
    <term>Alliage cuivreux</term>
    <relations>
        <relation type="BT" ref="m006"/>
        <relation type="BTS" ref="m006"/>
    </relations>
 </concept><concept id="m028" xml:lang="fr">
    <term>Argent</term>
    <relations>
        <relation type="BT" ref="m006"/>
        <relation type="BTS" ref="m006"/>
    </relations>
 </concept><concept id="m029" xml:lang="fr">
    <term>Bronze</term>
    <relations>
        <relation type="BT" ref="m006"/>
        <relation type="BTS" ref="m006"/>
    </relations>
 </concept><concept id="m030" xml:lang="fr">
    <term>Fer</term>
    <relations>
        <relation type="BT" ref="m006"/>
        <relation type="BTS" ref="m006"/>
    </relations>
 </concept><concept id="m031" xml:lang="fr">
    <term>Laiton</term>
    <relations>
        <relation type="BT" ref="m006"/>
        <relation type="BTS" ref="m006"/>
    </relations>
 </concept><concept id="m032" xml:lang="fr">
    <term>Or</term>
    <relations>
        <relation type="BT" ref="m006"/>
        <relation type="BTS" ref="m006"/>
    </relations>
 </concept> 
</thesaurus>

Ensuite dans la feuille d'indexation je rajoute
<sdx:expandField>
        <sdx:relation type="bt" depth="10" th="materiaux"/>
      <sdx:relation type="bts" depth="10" th="materiaux"/>
      <sdx:relation type="nt" depth="1" th="materiaux"/>
</sdx:expandField>

Dans le sdx:field des matériaux.

Pour finir dans le fichier application.xconf je rajoute
<sdx:transformation id="thes" 
type="fr.gouv.culture.sdx.pipeline.FieldExpansionTransformation" 
th="materiaux"/>
Dans le pipeline d'indexation 

Puis :
<sdx:thesauri>  
        <sdx:thesaurus id="materiaux" type="lucene" src="materiaux.xml">
                 <sdx:repositories>
                <sdx:repository type="HSQL" id="materiauxRepo" default="true"/>
                </sdx:repositories>
                <sdx:depth>10</sdx:depth>
                <sdx:relations>
                        <sdx:relation>bt</sdx:relation>
                </sdx:relations>
                <sdx:fieldList xml:lang="fr-FR" variant="" 
analyzerConf="/sdx/resources/conf/analysis/fr.xml">
                        <sdx:field name="term" type="word" brief="true" 
default="true">
                                <sdx:name xml:lang="fr-FR">Term</sdx:name>
                        </sdx:field>
                        <sdx:field name="fterm" type="field" brief="true">
                                <sdx:name xml:lang="fr-FR">Term TYPE 
Field</sdx:name>
                        </sdx:field>
                        <sdx:field name="bts" type="field" brief="true">
                                <sdx:name xml:lang="fr-FR">Broader 
TermS</sdx:name>
                        </sdx:field>
                        <sdx:field name="bt" type="field" brief="true">
                                <sdx:name xml:lang="fr-FR">Broader 
Term</sdx:name>
                        </sdx:field>
                        <sdx:field name="nt" type="field" brief="true">
                                <sdx:name xml:lang="fr-FR">Narrower 
Term</sdx:name>
                        </sdx:field>                            
                </sdx:fieldList>
        </sdx:thesaurus>
</sdx:thesauri>
en fin de fichier

Je rajoute évidemment <sdx:expandQuery th="materiaux" depth="10" 
relation="bt"/> à l'intérieur de mes requètes sur le champ matériaux mais rien 
n'y fait.

Aurais-je oublié (ou mal compris) quelque chose?

Merci d'avance,

Vincent Leconte
Mobydoc





reply via email to

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