![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Gestion des résultatsSDX offre plusieurs actions permettant de travailler le résultat d'une requête. Il est ainsi possible de préciser le nombre de réponses que l'on veut voir sortir par page de résultats (on ne veut peut être pas avoir à traiter une document XML virtuel long de plusieurs centaines de réponses) avec sdx:hpp, trier ces résultats avec sdx:sorts et sdx:sort, naviguer parmi les différents documents issus d'une même requête avec sdx:navigation. Enfin, parce qu'il arrive que l'on exécute la même requête et qu'une recherche prend du temps, il est possible de récupérer un résultat déjà obtenu avec sdx:results. Lors de son exécution, une requête reçoit un identifiant (paramètre qid transmis par SDX ou la page XSP). sdx:results permet de récupérer le résultat de cette requête sans avoir la ré-exécuter. L'identifiant d'une requête demeure dans la mémoire de la session de l'utilisateur courant. Cela signifie, qu'à l'arrêt de la session (i.e. fermeture du navigateur ou déconnexion de l'utilisateur), l'identifiant est supprimé de la cache et qu'un identifiant de requête ne peut pas être partagé entre plusieurs sessions d'utilisateurs. Il n'y a pas encore de mécanisme de mémorisation d'une requête au niveau du serveur, mais ce n'est pas impossible et relativement économe en ligne de code (TODO : cf. message de Frédéric Glorieux dans la liste sdx-developers).
Tableau 1. Paramètres spécifiques
Tableau 2. Paramètres communs
sdx:hpp permet de créer les groupes de résultats en déterminant leur nombre. S'il n'est pas expressément défini, les résultats seront regroupé par lot de vingt dans chaque page. Noter que la valeur -1 génère une liste complète des résultats sur une seule page.
sdx:sort est utilisée pour trier les résultats d'une requête. Il admet deux ordres de tri (ascendant et descendant). Il peut être répété (au sein de son conteneur multiple ou non sdx:sorts) afin de paramétrer plusieurs clés de tri. Son utilisation s'apparente à la commande xsl:sort d'une feuille XSLT.
Tableau 4. Paramètres spécifiques
Exemple 1. Double clé de tri Cette page XSP génère une requête dans l'index ville. Les résultats obtenus seront triés par nom de pays puis par nom de ville (si tant est que ces deux champs soient présents dans la page de résultat : attribut brief="true" dans le fichier application.xconf) FIXME. <sdx:page> <sdx:executeSimpleQuery field="ville" queryParam="question"> <sdx:sort field="pays" order="descendant"/> <sdx:sort field="ville" order="descendant"/> </sdx:executeSimpleQuery> </sdx:page> sdx:sorts est le conteneur multiple de sdx:sort. Il permet également de passer dynamiquement de multiples paramètres de tri dans une URL.
Tableau 5. Paramètres spécifiques
Exemple 2. Clé de tri double en paramètre dynamique La page XSP suivante : <sdx:page> <sdx:executeSimpleQuery field="ville" queryParam="question" baseParam="base" sfParam="sortfield" soParam="sortorder" /> </sdx:page> permet de récupérer un résultat trié selon les mêmes clés de tri que dans l'exemple précédent au moyen de l'URL {serveur SDX}/sdxtest/ss.xsp?1=docs&2=france&3=pays&4=descendant&3=ville&4=descendant. En relation avec la lecture d'un document XML, SDX offre des fonctions de navigation au sein des résultats d'une requête. Le développeur d'application peut ainsi permettre au lecteur de naviguer littéralement d'un document à un autre suivant un système de document précédent-suivant. Tableau 6. Paramètre spécifique
L'action sdx:navigation n'emploie aucun paramètre commun. Un exemple de l'utilisation de sdx:navigation est proposé avec l'action sdx:includeDocument. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Auteur : Malo Pichot (AJLSM) - 2003-06-04 |