[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [sdx-users] Problème sdx:filter
From: |
Castonguay Dave |
Subject: |
RE: [sdx-users] Problème sdx:filter |
Date: |
Wed, 23 Mar 2005 09:50:51 -0500 |
Re à tous :)
Merci pour les réponses!
J'ai essayé ce que Pierre a suggéré. Je me suis vite apperçu que j'avais besoin
d'un executeQuery :)
Ça fonctionne bien. :)
Sauf que pour le moment ma base est vide et vos inquiétudes faces aux
performances me font un peu peur :(
Autre chose qui est malheureuse pour moi, c'est que en passant un paramètre
"qid" à sdx:terms, on perd la possibilité
de de passer des truncature (B*). Ce dont j'avais besoin car ces pages sont
orgnaisé par liste alpha (où on offre des liens sur les lettres ayant des
termes).
On voit dans la logicsheet:
sdx_object=getSessionObject(session, sdx_parameter);
if (sdx_object != null && sdx_object instanceof Results)
{
sdx_results=(Results)sdx_object;
if (sdx_results != null) sdx_terms.setUp(sdx_results, sdx_fields[0],
sdx_values[0]);
}
On remarque que l'onne passe que le premier élément des sdx_fields[] et
sdx_values[].
Ce qui rend impossible (aucun résultats):
<sdx:terms qidString="myQid">
<sdx:parameter name="field" valueParam="field" />
<sdx:parameter name="value" valueParam="value" />
<!-- value est A*, B*, C*, etc... -->
<sdx:parameter name="field" valueParam="field" />
<sdx:location base="notice"/>
</sdx:terms>
Mais ce code fonctionne très bien si on ne passe pas le qid.
Par contre, je ne comprend pas pourquoi le code suivant ne fonctionne pas:
<sdx:terms qidString="myQid" fieldParam="field" valueParam="value"/>
Des idées?
Ce que je vais faire pour le moment,
c'est de faire des test en modifiant la logicsheet pour que l'on passe tous les
sdx_fields et tous les sdx_values à la méthode setUp de Terms. Je vais voir
comment ça réagit mais de ce que j'ai vu/compris de la classe Terms, ça ne
dervait pas changer grand chose.
Je vous tiens au courant :)
Bonne journée
Dave
-----Message d'origine-----
De : address@hidden
[mailto:address@hidden la
part de Pierrick Brihaye
Envoyé : 23 mars, 2005 03:22
À : address@hidden
Objet : Re: [sdx-users] Problème sdx:filter
Salut,
Malo Pichot a écrit :
>>> <sdx:simpleQuery query="type_document:Sonore type_document:Braille" />
>>> String myQueryId = sdx_qid;
>>> <sdx:terms field="sujet" qidString="myQueryId"/>
>
> Je rectifie ; la syntaxe ici ne devrait pas fonctionner : sdx_qid n'est
> pas créer avec <sdx:simleQuery>. C'est le boulot de <sdx:results /> ou
> de toute <sdx:execute*Query />.
Oui. Je m'etonne d'ailleurs d'avoir oublié ce execute.
> On peut employer :
>
> <sdx:simpleQuery query="type_document:Sonore type_document:Braille" />
> <sdx:results qid="myQueryId" hpp="0" />
Bien vu. Le hpp="0" fera gagner un peu de performance (20 résultats de
moins dans le tuyau).
><sdx:terms field="sujet" qidString="myQueryId"/>
Gaffe : il manque le String myQueryId = sdx_qid; que l'on peut
factoriser probablement ainsi :
<sdx:terms field="sujet" qidString="sdx_qid"/>
... mais c'est plus difficile à déboguer.
En ce qui concerne la performance, je partage les scrupules de Martin,
surtout dans le cas proposé qui effectue préalablement une requête "OR".
Ca oblige à un produit cartésien assez dispendieux.
Si je ne me trompe pas, on a tout de même une possibilité, pas très
élégante, de "filtrage" dans <sdx:terms>. Il "suffit" d'utiliser une
troncature :
<sdx:terms field="sujet" value="a*" />
ou, plus généralement, si j'en crois le code, une expression régulière
(v.
http://savannah.nongnu.org/cgi-bin/viewcvs/sdx/sdx_v2/src/java/fr/gouv/culture/sdx/search/lucene/query/Terms.java?annotate=1.73,
ligne 208).
Cela permet de restreindre les termes éligibles et, le cas échéant,
d'organiser un paging :
a-h i-m n-s t-z par exemple...
A+
--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
+33 (0)2 99 29 67 78
_______________________________________________
sdx-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/sdx-users
AVIS DE CONFIDENTIALITÉ - AVERTISSEMENT RELATIF À LA LOI SUR L'ACCÈS AUX
DOCUMENTS DES ORGANISMES PUBLICS ET SUR LA PROTECTION DES RESEIGNEMENTS
PERSONNELS (L.R.Q.,c.A.-2.1): L'information transmise avec ce courrier
électronique est de nature privilégiée et confidentiellle. Elle est destinée à
l'usage exclusif de son destinataire. Si vous n'êtes pas le destinataire visé,
vous êtes par la présente avisé qu'il est strictement interdit d'utiliser cette
information, de la copier, la distribuer ou la diffuser. Veuillez s'il vous
plaît contacter l'expéditeur initial du courrier électronique et le détruire de
votre ordinateur.
RE: [sdx-users] Problème sdx:filter,
Castonguay Dave <=
RE: [sdx-users] Problème sdx:filter, Castonguay Dave, 2005/03/23