sdx-users
[Top][All Lists]
Advanced

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

[sdx-users] Remplacer "-" par " " dans la query


From: Emmanuel Bégué
Subject: [sdx-users] Remplacer "-" par " " dans la query
Date: Sat, 24 Apr 2004 02:10:42 +0200

Bonjour,

"-" est pour Lucene un opérateur qui veut dire "AND NOT",
ce qui fait qu'on doit l'échapper pour chercher des termes
qui contiennent un tiret (ex: États-Unis).

Mais on ne peut pas demander aux utilisateurs de taper "États\-Unis";
donc on doit le faire pour eux, faute de quoi les recherches
sur "États-Unis" reviennent à chercher "etats AND NOT unis".

En fait plutôt que d'échapper on choisit de remplacer par un blanc,
parce que c'est presque aussi exact (d'après les résultats obtenus)
et c'est plus présentable lorsqu'on restitue la query à l'utilisateur.

J'ai donc mis dans la xsp de recherche
        <sdx:parameter name="query" valueParam="q">
                <xsp:logic>
                        sdx_parameter = sdx_parameter.replace('-',' ');
                        </xsp:logic>
                </sdx:parameter>

Ça marche plus ou moins, c'est à dire que la première page de
résultats de recherche s'affiche (avec le tiret effectivement
remplacé par un blanc dans la query), mais si on demande une autre
page que la première (ou la première avec ?qid=sdx_q33&p=1) on obtient
l'erreur                java.lang.NullPointerException

Les logs renvoient à la ligne 1456 de la xsp, qui contient:
if (sdx_log != null) sdx_log.error(sdx_ee.getMessage(),
sdx_ee.fillInStackTrace());

Comment corriger ce problème?

Cdt,
EB


PS: ce(?) pb. est signalé et apparemment résolu dans le bug report
http://issues.apache.org/bugzilla/show_bug.cgi?id=27491
qui concerne la release 1.4RC1 de Lucene; quelle est la
règle d'intégration des nouvelles versions de Lucene à SDX?





reply via email to

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