Laurent Kempé
Indexer et rechercher vos entités métier à l'aide du Framework Lucene.Net
Conception à l'aide des génériques et de la réflexion d'un moteur de recherche permettant d'indexer et rechercher du contenu dans des entités métier sans les polluer.
Par Laurent Kempé publié le 12/11/2007 à 00:04, lu 8624 fois, 6 pages
 1 | Introduction
De nos jours, une des fonctionnalités que la plupart des sites web implémentent est une méthode permettant d'indexer et de donner la possibilité aux utilisateurs de rechercher du contenu dispersé dans leurs pages web. Il s'agit d'une des manières les plus simples d'améliorer l'expérience des utilisateurs d'un site web.
Les blogs ont amenés la notion de catégories/tags permettant de classer les informations. Cependant cette méthode des plus intéressantes n'est pas toujours suffisante. Il convient alors d'utiliser une vraie méthode d'indexation de contenu.
Dans cet article je vous propose d'examiner la méthode d'indexation et de recherche que j'ai pu mettre en place sur le site web de ma nouvelle société innoveo solutions, et qui va j'espère bientôt faire aussi son apparition sur Tech Head Brothers.
Le site web d'innoveo solutions ainsi que Tech Head Brothers ont été développés en utilisant la méthode Domain Driven Design. Pour cela une couche avec des objets du domaine adressé est définie. Dans cette couche on ne se soucie pas de la persistance des objets ou de tout autre aspect technique. On se concentre par contre sur le domaine d'application que l'on adresse.
Une des idées principales est de ne pas polluer les objets du domaine par de quelconques héritages de classes techniques ou de devoir lier cette couche à un quelconque Framework technique.
Pour cela, nous utiliserons un outil de mapping O/R (EUSS) pour les entités du domaine métier de mon exemple ainsi que le Framework Lucene.NET pour la partie indexation.
Après quelques discussions (merci Didier ;)dans lesquelles nous nous sommes demandé si nous allions plutôt utiliser un service offert par un des grands de la recherche sur Internet, nous avons finalement décidé de garder le contrôle sur notre outil de recherche.
Voulant être indépendant par rapport à une base de données et de service tel que l'indexation Full-Text, ou d'un service comme Indexing Services, nous avons décidé d'utiliser Lucene.Net afin de ne pas devoir tout ré-implémenter depuis le départ.
L'article commence par une introduction présentant Lucene.Net, nous allons voir ensuite l'architecture choisie pour le Framework d'indexation et de recherche, puis les détails de l'implémentation et enfin un exemple d'intégration dans une couche d'accès aux données.
Commençons tout de suite par une présentation du Framework open source Lucene.Net qui a été retenu pour implémenter notre solution.
 
» Démarrer une discussion
 
Discussion démarée par teddyalbina le 24/08/2008 à 11:41, 1 commentaire(s).