sdx-users
[Top][All Lists]
Advanced

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

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


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

En fait apparemment il faut tester l'existence du paramètre
qu'on tente de transformer, pour éviter d'utiliser une chaîne
qui n'a pas été au préalable initialisée (ce qui est le cas
dans une requête qui ne contient pas de paramètre query).

En écrivant ceci ça marche:

<sdx:parameter name="query" valueParam="q">
<xsp:logic>
        if (sdx_parameter != null) {
                sdx_parameter = sdx_parameter.replace('-',' ');
                }
        </xsp:logic>
</xsp:parameter>

Cdt,
EB

> -----Message d'origine-----
> De : address@hidden
> [mailto:address@hidden la part
> de Emmanuel Bégué
> Envoyé : samedi 24 avril 2004 02:11
> À : address@hidden
> Objet : [sdx-users] Remplacer "-" par " " dans la query
>
>
> 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?
>
>
>
> _______________________________________________
> sdx-users mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/sdx-users
>
>





reply via email to

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