sdx-users
[Top][All Lists]
Advanced

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

RE : [sdx-users] Indexation


From: Martin Sévigny
Subject: RE : [sdx-users] Indexation
Date: Tue, 5 Mar 2002 18:21:02 +0100

Bonjour,

> Comme vous le savez, ma grande préoccupation du moment est 
> l'indexation :-))

Normal pour un outil de recherche ;-)

> 1er point : les index de type "champ". Les valeurs sont 
> indexées telles quelles, soit. Ca me paraît tenir la route. 
> Mais peut-on concevoir une *recherche* sur ce type de champ 
> qui ne soit pas sensible à la casse et, éventuellement, à 
> l'accentuation de la même manière qu'on a une 
> ExactFieldSearch (vs FieldSearch) qui accepte les 
> troncatures, au moins dans certaines conditions ?

Plusieurs choses ici.

A) La troncature est supportée en FieldSearch. Avec * et ? n'importe où
dans la chaîne recherchée. Du moins il me semble. Enfin, je viens de
tester pour vérifier et ça marche parfaitement.

B) Ne pas oublier que l'on peut définir plusieurs champs avec le même
contenu (par exemple un en minuscules et l'autre en respectant la casse)

Sinon, personnellement j'aime bien la notion que dans un champ de type
field, SDX prend exactement ce qu'on lui donne. En particulier dans un
contexte multilingue, où justement la casse n'est pas un concept
universel. Donc si j'ai besoin de minuscules, je lui donne en
minuscules. La fonction 'translate' en XSLT/XPATH peut faire le boulot,
sauf si on veut supporter tout l'Unicode. Dans ce cas, j'opterais pour
une extension Java (à XSLT) et l'utilisation des classes et des
"locales" appropriées. Je crois que celles-ci implantent correctement
les algorithmes associés à Unicode.

> 2ème point : les index de type "mot". Ici, c'est l'indexation 
> en tant que telle qui me gène. Apparemment, le parsage mot 
> par mot se fait selon la notion "d'espaces" au sens XML du 
> terme(espaces, sauts de lignes, tabulations...). Pourrait-on 
> également concevoir avoir une liste de signes de séparation 
> (ponctuation au sens large incluant les parenthèses, les 
> crochets...) ?

Tout ceci est vrai, mais... L'une des rares fonctions modulaires dans
SDX est justement l'analyseur de mots. Pour avoir son propre analyseur
de mots, on fait ceci :

- créer et compiler une classe Java qui respecte l'interface
com.lucene.analysis.Analyzer

- s'assurer que cette classe compilée est dans le CLASSPATH au démarrage
du moteur de servlets

- mettre quelque chose comme ceci dans le db_info.xml :

  <sdx:lucene>
    <sdx:index path="_lucene"/>
    <sdx:analyzer class="nom.complet.de.la.classe.en.question"/>
  </sdx:lucene>

- réindexer ;-)

Pour avoir un exemple, regarder la classe
fr.gouv.culture.sdx.index.FrenchStandardAnalyzer.

Si certaines personnes développent de telles classes qui peuvent être
partagées, faites-le savoir nous les mettrons dans la distribution SDX.

A bientôt,

Martin Sévigny




reply via email to

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