Connexion au Web Service
Voici la méthode permettant de se connecter au module d'indexation :
Il ne reste plus qu'à ajouter dans le code l'appel à cette méthode en donnant comme URL celle du Web Service de l'indexeur : OriOaiIndexingServiceInterface service = getService(url);
Ori-Oai-Indexing intègre la librairie ori-oai-commons.jar. Elle est indispensable pour se connecter au Web Service.
Méthodes publiques du web service
IndexOrUpdate
Indexation d'une fiche s'il s'agit de la première indexation de celle-ci ou mise à jour si elle est déjà présente. Elle est utilise pour ORI-OAI-Workflow car ce module ne gère pas la présence ou non d'une fiche dans l'index. L'index sera toujours optimisé lors de l'utilisation de cette méthode.
Les paramètres de cette méthode sont les suivants :
String metadataFile
Fiche de métadonnées à indexer
String id
Identifiant associé à la fiche
String namespace
Namespace de la fiche
String datestamp
Date au format YYYY MM DD. Le caractère de séparation sera supprimé au moment de l'indexation et la date sera de la forme : YYYYMMDD. Il n'est pas possible d'indexer une objet de type date.
String repository
Repository dans lequel se trouve la fiche. Si c'est une fiche locale, la valeur de ce paramètre sera "null".
boolean doOptimize
Booléen à true lorsque l'index doit être optimisé. L'optimisation est une phase relativement longue (selon la taille de l'index).
Cette méthode renvoie un entier indiquant le bon fonctionnement de l'opération.
Les différentes valeurs renvoyées sont :
- -1 en cas d'erreur. La fiche n'a pas pu être indexée ou mise à jour.
- 0 en cas de mise à jour d'un format. La réindexation de ce format avec les autres formats s'il y en a s'est bien déroulée.
- 1 en cas d'indexation réussie d'une nouvelle entrée de l'index.
- 2 en cas d'indexation réussie d'un nouveau format.
IndexOrUpdate
Cette méthode est la même que la précédente mais ne contient pas de booléen d'optimisation de l'index. L'optimisation se fera alors à chaque appel de cette méthode.
Index
Depuis la version 1.5 cette méthode est dépréciée. En effet le module d'indexation est dorénavant capable de savoir si une fiche est indexée pour la première fois ou s'il s'agit d'une mise à jour. Il est préférable d'utiliser la méthode indexOrUpdate contenant le booléen d'optimisation notamment dans le cadre d'une moisson et de demander l'optimisation à la dernière fiche moissonnée.
Update
Depuis la version 1.5 cette méthode est dépréciée. En effet le module d'indexation est dorénavant capable de savoir si une fiche est indexée pour la première fois ou s'il s'agit d'une mise à jour. Il est préférable d'utiliser la méthode indexOrUpdate à la place de celle-ci.
DeleteNotice
Suppression d'une fiche dans l'index.
Les paramètres sont :
String id
Identifiant de la fiche à supprimer.
Cette méthode permet de supprimer tous les formats indexés pour un identifiant donné. Elle renvoie un entier indiquant le bon fonctionnement de la suppression.
DeleteNotice
Suppression d'une fiche dans l'index.
Les paramètres sont :
String id
Identifiant de la fiche à supprimer.
String namespace
Namespace du format a supprimer.
Cette méthode renvoie un entier indiquant le bon fonctionnement de la suppression.
DeleteNotices
Suppression de plusieurs fiches de l'index. Pour chaque fiche à suprimer elle appelle la méthode deleteNotice Elle prend en paramètres :
String []ids
Tableau contenant les identifiants à supprimer
Cette méthode renvoie un tableau d'entiers donnant le résultat de chaque suppression.
DeleteNotices
Cette méthode est dépréciée depuis la version 1.6 du module. Il est préférable d'utiliser la méthode deleteNotices(String identifier, String[] namespaces) en remplacement de celle-ci.
Suppression de plusieurs fiches de l'index. Pour chaque fiche à suprimer elle appelle la méthode deleteNotice Elle prend en paramètres :
String []ids
Tableau de d'identifiants à supprimer
String []namespaces
Namespaces associés aux identifiants.
Cette méthode renvoie un tableau d'entiers donnant le résultat de chaque suppression.
DeleteNotices
Suppression de plusieurs fiches de l'index. Pour chaque fiche à suprimer elle appelle la méthode deleteNotice Elle prend en paramètres :
String id
Identifiant dont on souhaite supprimer certains formats indexés
String []namespaces
Namespaces des formats à supprimer
Cette méthode renvoie un tableau d'entiers donnant le résultat de chaque suppression.
SearchForNumberOfResults
Nombre de résultats pour une requête donnée.
String request
Requete dont on cherche a connaitre le nombre de résultats
Cette méthode renvoie un entier long correspondant au nombre de résultats d'une requête.
SearchForSomeNumberOfResults
Nombre de résultats pour un tablau composé de plusieurs requêtes.
String request[]
Tableau de requêtes dont on cherche a connaitre le nombre de résultats
Cette méthode renvoie un tableau d'entiers long correspondant au nombre de résultats de chaque requête.
SearchXMLDoc
Récupère une fiche XML locale ou moissonnée.
Elle prend comme paramètres :
String id
Identifiant de la fiche.
String namespace
Format de la fiche
Cette méthode renvoie une chaîne de caractères correspondant à la fiche XML.
SearchXMLDoc
Récupère une fiche XML locale ou moissonnée.
Elle prend comme paramètres :
String id
Identifiant de la fiche.
Cette méthode renvoie une table de hachage contenant pour chaque format indexé la fiche correspondante.
SearchXMLDoc
Récupère une fiche XML locale ou moissonnée.
Elle prend comme paramètres :
String id
Identifiant de la fiche.
List<String> namespaces
Liste des formats de fiches à récupérer.
Cette méthode renvoie une table de hachage contenant pour chaque format indexé demandé la fiche correspondante.
SearchXMLDocs
Récupère plusieurs fiches XML.
Les paramèrtes sont :
String request
Requête dont on souhaite obtenir les fiches correspondant aux résultats.
int firstDocumentId
Numéro du premier document dans la liste des résultats à renvoyer.
int lastDocumentId
Numéro du dernier document dans la liste des résultats à renvoyer.
Cette méthode renvoie un objet de type SearchResults. Cette classe est présentée dans la section suivante.
SearchXMLDocs
Récupère plusieurs fiches XML.
Les paramètres sont :
String request
Requête dont on souhaite obtenir les fiches correspondant aux résultats.
String namespace
Format dans lequel on souhaite obtenir les résultats
int firstDocumentId
Numéro du premier document dans la liste des résultats à renvoyer.
int lastDocumentId
Numéro du dernier document dans la liste des résultats à renvoyer.
Cette méthode renvoie un objet de type SearchResults. Cette classe est présentée dans la section suivante.
SearchXMLDocs
Récupère plusieurs fiches XML.
Les paramèrtes sont :
String request
Requête dont on souhaite obtenir les fiches correspondant aux résultats.
List<String> namespaces
Liste des formats dans lesquels on souhaite obtenir des résultats.
int firstDocumentId
Numéro du premier document dans la liste des résultats à renvoyer.
int lastDocumentId
Numéro du dernier document dans la liste des résultats à renvoyer.
Cette méthode renvoie un objet de type SearchResults. Cette classe est présentée dans la section suivante.
SearchFromAttributes
Recherche par attributs. Ici on ne récupère pas de fiches mais certains attributs (ex : titre, auteur..) de cette dernière.
Les paramètres de cette méthode sont :
String request
Requête dont on souhaite connaitre les résultats.
String sortAttributes[]
Attributs de tri de la liste de résultats. Si cette valleur est "null" alors les résultats seront triés par leur identifiant.
int firstDocumentId
Numéro du premier document dont on souhaite connaitre les valeurs des attributs.
int lastDocumentId
Numéro du dernier document dont on souhaite connaitre les valeurs des attributs.
String []attributes
Attributs dont on souhaite connaitre la valeur.
boolean ascending
Booléen à true si les résultats doivent être rangés dans l'ordre croissant.
boolean highlightTerms
Booléen qui indique si on doit tenter de surligner la valeur des attributs.
List<String> parametersNotToHighlight
Liste des attributs à ne pas surligner.
Cette méthode renvoie un objet de type SearchResults. Cette classe est présentée dans la section suivante.
En donnant "-1" comme valeur à firstDocumentId et lastDocumentId, tous les résultats sont alors retournés. Dans ce cas le temps de réponse peut être plus long si le nombre de résultats est important.
uniqueValues
Recherche de valeurs uniques de l'index. Elle est utilisée pour le recherche par auteur notamment.
String xpath
Xpath ou nom de métadonnée dont on souhaite connaitre toutes les valeurs uniques.
Cette méthode renvoie un tableau de chaînes de caractères correspondant à toutes les valeurs uniques.
clearCache
Méthode qui vide les cache sans avoir à redémarrer Tomcat. Elle est utilisée en cas de tests de recherche.
String name
Nom du cache à vider. S'il vaut null alors tous les caches sont vidés.
getDeadlinkNoticesIds
Méthode qui donne tous les identifiants de fiches dont le lien est brisé.
Cette méthode renvoie un tableau de chaînes de caractères correspondant à tous les identifiants.
getDeadlinkNoticesIds
Méthode qui donne tous les identifiants de fiches dont le lien est brisé à partir d'un entrepôt donné.
String repository
Entrepôt dont on souhaite connaitre les identifiants de fiches ayant un lien brisé.
Cette méthode renvoie un tableau de chaînes de caractères correspondant à tous les identifiants.
La classe SearchResults
Elle est utilisée lors de la recherche par attributs ou par la recherche de fiches XML. Elle contient un *entier
long *correspondant au nombre de résultats d'une requête ainsi qu'une *liste d'objets de type
SearchResult*. Pour les obtenir il faut respectivement utiliser les méthodes getNumberOfResults() et getResults().
La classe SearchResult contient plusieurs chaînes de caractères : id, namespace, repository, datestamp que l'on récupère grâce à des méthodes get. Elle contient également une chaîne correspondant à la fiche et que l'on obtient grâce à la méthode getNoticeContent(). Elle est utilisée dans le cadre de la recherche de fiches XML. En ce qui concerne la recherche par attributs il faut utiliser getAttributesValues() qui renvoie une liste de liste de String. En effet chaque attribut peut avoir plusieurs valeurs (ex : plusieurs auteurs), et plusieurs attributs peuvent être demandés (ex : titre, auteur, description...). Donc l'élément renvoyé est bien une liste de liste de chaînes de caractères.