[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sdx-users] Problèmes de majuscules et d'accents...
From: |
Pierrick Brihaye |
Subject: |
Re: [sdx-users] Problèmes de majuscules et d'accents... |
Date: |
Thu, 17 Apr 2003 11:17:26 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.0.2) Gecko/20030208 Netscape/7.02 |
Re,
address@hidden a écrit:
J'ai fait une requête sur des champs. Elle fonctionne uniquement quand j'écris
les mots recherchés exactement comme ils sont dans mon fichier xml, c'est-à-
dire quand je mets les majuscules et les accents. Je travaille en ISO-8859-1.
Je ne sais pas si c'est cela, pourriez-vous m'éclairer?
Si votre "champ" (votre "index ;-) est de type "field", il n'est *pas*
analysé : les valeurs sont donc stockées *telles quelles* dans l'index.
Je rappelle que la génération des valeurs et du ressport de votre XSL
d'indexation et que rien ne vous empêche de réaliser des manipulations
très complexes.
Si votre index est de type "word", il est analysé, c.a.d. réduit en
"jetons" (des... mots), filtré (exit les mots vides), harmonisé
(majuscules, accents...). Je passe les détails ; pour en savoir plus :
http://lucene.sourceforge.net/cgi-bin/faq/faqmanager.cgi?file=chapter.indexing&toc=faq#q16
De même, n'y a-t-il pas un moyen d'éviter de mettre des étoiles (*) autour des
mots que l'on recherche. Je m'explique : lorque je cherche le terme "archives"
dans le champ titre, je n'ai pas de résultat
Logique, si votre index est de type "field", ça ne répondra que si la
valeur pour "titre" est égale à "archives" (et pas "Archives" ni
"archives départementales").
(de même lorsque je cherche "archives *")
Logique aussi. ici, vous recherchez "archives *". Peu probable comme
valeur, non ?
> Alors que lorsque je cherche "* archives *" je trouve
> bien le résultat attendu.
Mmmh... En êtes-vous sûre ? Regardez comment SDX a interprété la requête
(attribut "LuceneQuery") : ça devrait vous donner des éléments de
réponse ;-)
Y a-t-il un moyen d'éviter de rajouter ces étoiles,
en le mettant dans le code?
A considérer que ça ait un intérêt, ce dont je doute personnellement,
bien sûr que c'est possible !
Vous récupérez votre paramètre en XSP et vous le transformez. Un truc du
genre :
<xsp:logic>
String avec_des_etoiles = new String("* " +
request.getParameter("mon_parametre") + " *");
<sdx:executeFieldQuery fieldParam="champ"
valueString="avec_des_etoiles"/>
</xsp:logic>
Vous pouvez aussi utiliser Javascript lors du submit. Au choix !
A bientôt,
--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden