Télécharger Installer Présentation Configuration Indexation Recherche OAI Javadoc Référence API-XSP Pages XSP Paramètres SDX Vue d'ensemble Structure Paramètres et flux Identification Droits Localisation Pipelines Thesaurus Indexation Recherche Documents Liste alphabétique Migration Schemas Performances | Indexation ou suppression de documentsListe des actions décrites dans cette page : SDX étant avant tout un outil de recherche dans une collection de documents XML, on admettra que l'indexation des dits documents est l'une des actions les plus importantes de l'API-SDX. Plusieurs outils sont mis à disposition dans l'API-XSP de SDX pour remplir cette tâche ; on y voit deux groupes distincts :
On se reportera à la section Indexation de la documentation pour approfondir cette notion. On retiendra que l'action d'indexer (au sens SDX du terme) correspond à identifier un document selon certains critères (ceux qui seront employés pour le retrouver) dans une collection de document (i.e. une base de documents dans le vocabulaire SDX). La suppression de document correspond à l'élimination de ces informations de la dite collection, ceci n'impliquant pas forcément la suppression physique du document selon le type de l'entrepôt (voir la section Les entrepôts pour approfondir cette notion). sdx:uploadDocument permet de lancer l'indexation d'un seul document.
Tableau 1. Paramètres
Exemple 1. Indexation d'un document Le code suivant présente une page XSP activant la commande d'indexation de document. Les documents source, des documents XML, seront indexés dans la base sdxworld, dans un entrepôt url. Noter le test préalable sur l'appartenance de l'utilisateur courant au groupe "admins" que nous définissions comme le groupe des administrateurs de l'application courante. <sdx:page> <sdx:userIsMember group="admin" > <sdx:uploadDocument base="sdxworld" repo="url" urlParam="url" type="text/XML" /> </sdx:userIsMember> </sdx:page> sdx:uploadDocuments permet de lancer l'indexation d'un lot de documents réunis par une URL (un lieu de stockage ou une adresse Internet commune).
Tableau 2. Paramètres spécifiques
Tableau 3. Paramètres communs
Exemple 2. Indexation d'un lot de documents XML Le code suivant présente l'emploi de sdx:uploadDocuments dans une page XSP. On attend certaines informations pour déclencher l'indexation : la base de documents dans laquelle on souhaite effectuer l'indexation ; le répertoire contenant les documents à indexer. On imagine que ce dernier contient non seulement les articles au format XML, mais également les images qui les illustrent. Les attributs includes et excludes sont utilisés ici dans un but pédagogique. Le premier spécifie que seul des documents XML devront être indexés ; le second spécifie que les images au format JPEG ne devront pas être prises en compte. On imagine bien que le premier est amplement suffisant dans ce cas précis ! <sdx:page> <sdx:uploadDocuments baseParam="base" dirParam="dir" includes="*.xml" excludes="*.jpg" /> </sdx:page> Il manque bien entendu des informations à SDX pour réaliser pleinement cette indexation, par exemple le nom de l'entrepôt, le pipeline d'indexation. Ces paramètres, absents ici, doivent être définis dans le fichier application.xconf. sdx:deleteDocument est l'action contraire de sdx:uploadDocument. Elle sert à retirer un document (ou seulement sa référence suivant le type de l'entrepôt) d'une collection de documents (i.e. une base de documents dans le vocabulaire SDX). Noter que la suppression d'un document entraîne la suppression de ses documents attachés (voir la section Documents attachés) et de ses sous-documents (voir la section Fragmentation de documents).
Tableau 4. Paramètres spécifiques
Tableau 5. Paramètres communs
Exemple 3. Retirer un document de la collection L'exemple suivant présente une page XSP activant la commande de suppression de documents. Aucune information n'est fourni (noms de l'application et de la base de document) hormis le nom du paramètre HTTP apportant l'identifiant du document que l'on souhaite retirer de la collection de documents. La page réagira ainsi à une URL du type : {serveur SDX}/sdxtest/del.xsp?id=ar5664a. Ceci supprimera toute l'information reliée au document ar5664a de la base de documents courante, de l'application courante. Ce document ne sera plus « cherchable » par SDX. <sdx:page> <sdx:deleteDocument idParam="id" > <sdx:fallback> <message type="echec_suppression"/> </sdx:fallback> </sdx:deleteDocument> </sdx:page> Noter l'emploi de sdx:fallback devant afficher un message au cas où la suppression n'aurai pas réussi. sdx:deleteDocuments permet de supprimer toutes les informations d'un lot de documents d'une collection. Elle agit ainsi à l'opposé de sdx:uploadDocuments. Elle diffère de son homologue sdx:deleteDocument par le fait qu'elle isole le lot de documents à supprimer de la base de documents en faisant appel à une requête. Ainsi, elle peut contenir toutes les actions de construction de requêtes proposées par l'API-XSP de SDX.
Tableau 6. Paramètres spécifiques
Tableau 7. Paramètres communs
Example 4. Suppression d'un lot de document dans deux bases L'exemple suivant présente une page XSP chargée de supprimer l'ensemble des documents de deux bases de documents. Ce n'est certainement pas la seule manière d'arriver à ce résultat ; cette page à toutefois l'avantage de fonctionner sans attendre aucune information extérieure (e.g., le qid d'une requête effectuer à partir d'une autre page XSP). Pour isoler le lot de documents, on emploie l'action de requête sdx:fieldQuery. <sdx:page> <sdx:deleteDocuments delete="true" hpp="-1"> <sdx:locations> <sdx:location base="docs" /> <sdx:location base="da" /> </sdx:locations> <sdx:fieldQuery field="sdxall" value="-1"/> </sdx:deleteDocuments> </sdx:page> Noter que sdx:deleteDocuments n'admet que les actions de construction de requêtes et non pas les actions d'exécution de requêtes (cf. Exécution des requêtes). Et bien que sdx:fieldQuery admet des informations de localisation (i.e., on peut employer directement un base="..." dans un sdx:fieldQuery), il devient indispensable d'employer sdx:locations et sdx:location pour localiser les deux bases de documents. sdx:index permet de définir les paramètres d'indexation. Utilisée par les deux éléments déclencheur de l'indexation (sdx:uploadDocument et sdx:uploadDocuments), elle permet à ces deux actions de définir des pipelines d'indexation (cf. sdx:pipeline). On se reportera aux sections Indexation et Pipeline d'indexation pour approfondir ces notions. Depuis SDX version 2..2, il est possible de déterminer le comportement de SDX lors de l'indexation de documents possédant le même identifiant (e.g., on souhaite indexer la nouvelle version d'un document).
Tableau 8. Paramètres spécifiques
Exemple 5. Impossible d'indexer une nouvelle version de document Dans l'exemple suivant, on souhaite modifier le comportement par défaut de SDX face à l'indexation de document possédant le même identifiant. On ne veut pas permettre le remplacement de document ; il est seulement possible d'en ajouter ou d'en retirer. <sdx:page> <sdx:uploadDocuments appParam="a" baseParam="b" repoParam="r" dirParam="d" zipParam="z" includes="*.xml" excludes="*.jpg" sameId="ignore"> <sdx:parameter name="attachedDocumentSameId" value="ignore" /> </sdx:uploadDocuments> </sdx:page> On notera les deux syntaxes proposées ici pour passer les paramètres sameId et attachedDocumentSameId, à l'aide d'un attribut de sdx:uploadDocuments ou à l'aide de sdx:parameter. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Auteur : Malo Pichot ( AJLSM ) - 2004-05-18 |