
Comme nous l’avons vu dans la première partie de ce document, le module de recherche d’AGORA se voir enrichit par l’intégration d’un moteur d’indexation MnoGoSearch au travers de Seven Seas.
Les principaux objectifs de Seven Seas sont :
Permettre une utilisation transparente de différents moteurs, sur serveur dédié ou non.
Assurer l’indépendance entre le code de l’application et l’utilisation d’un moteur spécifique.
Etre facilement et simplement extensible à d’autres moteurs.
Dans cette optique, Seven Seas permet d’utiliser un jeu d’interfaces unifiées pour l’accès à n’importe quel moteur d’indexation, qu’il fonctionne sur un serveur distant ou non. Cette solution permet de remédier à tous les problèmes évoqués précédemment.
On retrouve donc l’interface principale pour effectuer des requêtes sur un moteur d’indexation dans la classe SearchEngine. Les « drivers » pour les différents moteurs sont des classes qui héritent de cette classe abstraite. Ainsi, le driver pour Index Server a été représenté pour illustrer ce mécanisme. La classe ResultBuilder est une implémentation par défaut permettant de construire un arbre de résultat depuis le flux XML reçu du moteur d’indexation. L’utilisation d’une classe personnalisée est tout à fait envisageable, en écrivant une classe héritant de ResultBuilder. Les classes SearchResult et SearchResults ne sont que des conteneurs : SearchResults contient des SearchResult, eux-mêmes contenant les informations nécessaire à l’exploitation d’un résultat précis.