[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE : [sdx-users] Historique des recherches (qid)
From: |
Martin Sevigny |
Subject: |
RE : [sdx-users] Historique des recherches (qid) |
Date: |
Wed, 11 Feb 2004 11:08:55 +0100 |
Bonjour,
> Pour une même session, je voudrais savoir s'il existe un
> moyen simple de
> retrouver la liste des recherches déjà effectuées,
> c'est-à-dire avoir un
> historique.
> Si j'ai bien compris comment fonctionne SDX, à chaque recherche, SDX
> retourne une liste de résultats présentées sous la balise
> <sdx:results>.
> Cette balise contient un attribut "qid" qui est l'identifiant
> de la requête.
> Durant la session, on peut retrouver cette même liste de résultats en
> passant à la page de recherche le paramètre qid.
> Comment afficher sur une même page une liste de tous les qid
> déjà effectués
> ?
Les 5 derniers qid sont stockés en session, dans un objet dont j'oublie
le nom. Mais si vous mettez ceci dans une page XSP:
<sdx:page show="get session user">
...
</sdx:page>
Vous devriez avoir dans le XML généré tous les paramètres de session...
Par exemple:
<sdx:parameters>
<sdx:parameter type="get" name="base" value="fa-tmp"
escapedValue="fa-tmp"/>
<sdx:parameter type="get" name="base" value="fa" escapedValue="fa"/>
<sdx:parameter type="get" name="q" value="test"
escapedValue="test"/>
<sdx:parameter type="session" name="sdx_q2"
value="address@hidden"/>
<sdx:parameter type="session" name="sdx_qi" value="2"/>
<sdx:parameter type="session" name="sdx_q1"
value="address@hidden"/>
<sdx:parameter type="session" name="sdx_user"
value="address@hidden"/>
<sdx:parameter type="session" name="sdx_q0"
value="address@hidden"/>
</sdx:parameters>
Dans cet exemple, l'objet de session sdx_q0 contient la première
requête, sdx_q1 la seconde, etc.
Dans ces objets de session, vous avez des objets Results. Vous pouvez
faire, en XSP, quelque chose comme:
<ancienne-requete>
<xsp:logic>
fr.gouv.culture.sdx.search.lucene.query.Results res =
(fr.gouv.culture.sdx.search.lucene.query.Results)session.get("sdx_q0");
res.getQuery().toSAX(contentHandler);
</xsp:logic>
</ancienne-requete>
Vous aurez un élément ancienne-requete qui va contenir le XML de la
requête "0" dans l'historique.
Tout ceci n'est pas testé, mais le principe est là...
A bientôt,
Martin Sévigny