Le moteur de recherche theses.fr a été développée en interne par l’Abes. Il s’agit d’une application web Java, tournant sur le conteneur de servlet Tomcat, et dont les urls sont réécrites via Apache.
Nous avons choisi d’utiliser uniquement des JSP et Servlet, sans framework particulier. Voici les quelques librairies utilisées : Saxon / JDOM / SolRJ / JSON …
La partie « visible » est constituée d’HTML (bien sûr!) et d’une feuille de style (créée par Oxynel), ainsi que de javascript (JQuery) pour les widgets présents : autocompleter, slider, checkers…
Cependant, theses.fr sait délivrer autre chose que de l’HTML, via ses Servlets. Les API XML de theses.fr permettent d’obtenir le contenu sous différents formats, tels que (pour l’instant !) :
- Flux Atom
- RDF
- XML
Les données sont stockées dans une base Oracle : les métadonnées des thèses ainsi que le plein texte sont stockées dans une table (une colonne contenant les métadonnées sous forme TEF étendu, une colonne contenant le plein texte extrait du fichier PDF), la clé de la table est soit le numéro national de thèse, soit le numéro de la thèse en préparation (qui sera fourni par la future application STEP). Ainsi, via l’url www.theses.fr/n°xxx, on accède aux métadonnées de cette table.
D’autres tables seront par la suite utilisées pour gérer l’authentification qui permettra par exemple de sauvegarder les recherches.
Le principal challenge a été de fournir un moteur de recherche rapide pour ces données. Challenge d’autant plus crucial que le volume de données à l’ouverture n’a rien à voir avec celui que theses.fr devra supporter dans quelques mois, une fois chargées les métadonnées des thèses décrites dans le Sudoc et le texte intégral des thèses déposées dans TEL.
Nous avons choisi la plateforme de recherche opensource Apache SolR, basée sur Apache Lucene, qui fournit par défaut de nombreuses fonctionnalités :
- recherche plein texte
- highlighting (surlignage)
- facettes
- support de différents types de document (word, pdf…)
- recherche distribuée
- réplication d’index automatique
La plateforme de production qui permet d’avoir un service 24h/24 avec tolérance de pannes est composée de serveurs Red Hat Enterprise (Linux) :
- deux boîtiers de répartition de charge
- deux serveurs frontaux (Apache + Tomcat)
- un serveur de fichiers (NAS)
- deux serveurs de recherche (Tomcat + Solr)
- deux serveurs de base de données (Oracle en SAN)
Cette plateforme sert pour toutes les nouvelles applications développées par l’Abes : IdRef, STAR, STEP, theses.fr, les API Sudoc…
Pour de plus amples renseignements, n’hésitez par à contacter l’équipe technique via ABESstp
A. Charot
Bonjour,
j’aurais une ou deux questions / remarques a propos de l’interface ou des fonctionnalités de theses.fr
1) si j’ai bien compris, dans une liste de réponse vous affichez le terme de recherche dans son contexte. Apparement seulement si il est dans le document en texte intégral (pas si c’est dans la partie résumé de la notice ou si c’est un directeur de thèse).
Mais comment faite-vous pour ne pas afficher un contexte par exemple quand c’est dans le résumé (qui fait partit du texte intégral) ou dans la bibliographie ?
(on trouve des exemples avec le terme de recherche berry)
C’est Solr qui permet cela ?
je regardais avec intérêts l’ergonomie de vos facettes et
1) juste un petit (micro) désagrement technique : quand on affiche la totalité des entrées d’une facette, même si l’on en sélectionne aucune, en refermant la fenêtre modale, cela relance la recheche, alors que c’est inutile !
Ne serait-il pas possible de tester que rien n’a été coché et d’éviter ainsi un ré-affichage d’écran ?
2) partout (de ce que j’ai vu !!) les entrées des facettes sont classées par occurrence (très souvent décroissante): mais pourquoi l’occurrence la plus grande serait forcément la plus intéressante ? ou, le critère d’occurrence un critère pertinent à tous les coups ?
exemple : je recherche une thèse avec un mot quelconque, j’ai pas mal de réponses. En apercevant la facette des dir de thèses, je me souviens d’un nom. J’ouvre (ou je parcours) la facette … et là comment je fais pour retrouver rapidement le nom vue qu’ils ne sont pas classés par ordre alpha mais par le nombre de fois ou ils ont été catalogués comme dir de thèses !!
Qu’est-ce que j’en sais moi, lecteur lambda, combien de fois ils ont été catalogués !?
Du coup une facette utile devient,sinon inutilisable, du moins très pénible a utiliser (puisqu’elle m’oblige à lire bcp d’entrées pour trouver la bonne) !
Je me demande vraiment si l’ordre alpha ne serait pas plus utile pour les facettes ! ?
Cordialement
(ah ! je ne vous l’ai pas dit ?
moi je la trouve vraiment pas mal votre interface !! : -)