Re-bonjour,

Parfait si vous avez pu vérifier qu'Hibernate Search est le meilleur candidat pour nos besoins.

Concernant le choix entre la mise en place par annotations sur les entités ou par programmation, je serais plus d'avis à utiliser les annotations.
En effet, le projet Cantharella est déjà très orienté annotation. Que ce soit pour Hibernate ou pour Spring, nous avons toujours essayé de les privilégier et de minimiser au maximum les fichiers de configuration XML (avec aussi un effort de passer par de la configuration par programmation lorsque les annotations ne sont pas possibles). L'utilisation par annotation étant par ailleurs le mode de fonctionnement par défaut d'Hibernate Search, il serait dommage de ne pas en bénéficier.

Je comprends bien toutefois l'argument de vouloir centraliser dans une ou plusieurs classes l'ensemble du code se rapportant à Hibernate Search pour des raisons de modularité. C'est souvent l'inconvénient de ces systèmes d'annotations centrés DAO, cependant en contre partie ils ont l'avantage d'offrir une vision claire de l'ensemble des contraintes et fonctionnalités liées au modèle.
Actuellement, les classes DAO comportent déjà des annotations d'hibernate/JPA (Hibernate Annotation, Hibernate Validation, javax.persistence) ou même d'autres annotations personnalisées pour des validations métiers. Le fait de rajouter d'autres annotations pour préciser les champs à indexer ne me pose donc pas plus de problème que cela.
Les requêtes pourront par contre être factorisées dans des classes à part (par exemple, une classe pour chaque entité) dans un package spécialisé de la couche DAO.

Cette question mérite certainement d'être discutée plus amplement. Peut-être pourrions-nous aborder ce point à la prochaine réunion ?

Bonne journée,
Adrien


Le 09/11/2012 05:34, Benjamin POUSSIN a écrit :
Bonjour,

Il semble que la solution Hibernate Search conviendrait à notre besoin
pour la recherche.

On peut la mettre en place soit par des annotations sur les entités
soit par programmation.

Je propose de la mettre en place par programmation, pour que tout le
travail soit à un seul endroit (une classe) et ainsi permettre de
facilement la retirer pour mettre une autre solution si besoin ou
mettre à jour la solution si le modèle évolue sans devoir reprendre
chaque classe d'entité une par une.

Est-ce que cette solution convient à tout le monde ?



--
Adrien Cheype
Ingénieur en Systèmes d'Information
Service « Informatique Scientifique et Appui aux Partenaires du Sud »
Direction du Système d'Information (DSI)
http://www.ird.fr/dsi/
http://www.ird.fr/informatique-scientifique/

INSTITUT DE RECHERCHE POUR LE DEVELOPPEMENT
BP A5 - 98848 Nouméa - Nouvelle Calédonie
Tél. +687 260 789