Fiche logiciel validé
  • Création ou MAJ importante : 25/06/08
  • Correction mineure : 25/06/08
Auteur :
  • Sébastien Carrère - LIPM (INRA, CNRS)
Relecteur(s) :
Contributions importantes :
  • Frédéric Glorieux
Responsable thématique :
Mots-clés

lucene : moteur d'indexation et de recherche

Description
Fonctionnalités générales : 

Lucene est une bibliothèque d’indexation et de recherche écrite en Java. Ce logiciel libre de la fondation Apache permet de développer des moteurs de recherche plein texte (avec des analyseurs linguistiques) et documentaires (avec des champs adaptés à chaque type document). Ses fonctionnalités sont nativement accessibles en java, il existe des APIs pour d’autres langages, dont : PHP, Perl, Python, Ruby… Plusieurs portages ont été fait, officiellement (C, .NET), ou pas (C++, Perl…).

Lucene peut intéresser certains développeurs d’applications, notamment des bioinformaticiens qui doivent manipuler des banques de séquences biologiques, ou encore des linguistes de corpus.

Autres fonctionnalités: 

Logiciel libre actif depuis plusieurs années, Lucene est extensible, tout en conservant une architecture simple et cohérente. On trouvera du code, de la documentation, ou des listes de diffusion, pour des concepts de la recherche plein texte généralement réservés aux spécialistes.

  • Tri de pertinence selon différents algorithmes ;
  • Listes de mots vides pour différentes langues ;
  • Recherche floue adaptée à une langue, un type de documents ;
  • Elargissement de requêtes par synonymes ;

Des projets comme Nutch ou Mahout illustrent comment exploiter différents formats de fichiers (bureautiques, pdf).

Interopérabilité: 

Le format des index est documenté, indépendant de l’implémentation qui les écrit et les lit. Par contre, le format d’index peut changer d’une version à l’autre, la compatibilité ascendante est toujours conservée.

Contexte d'utilisation: 

Lucene se prête à l’exploitation de corpus structurés, aussi bien textes que données: par exemple (mais pas seulement) fichiers XML. Il peut être employé en application client (java : swing, eclipse…), ou web.

Au LIPM :

Nous utilisons Lucene pour analyser et indexer principalement des fichiers XML, contenant des données de biologie.

  • Nous utilisons l’implémentation C++ (Clucene) et l’interface perl Lucene.pm.
  • Une paire de scripts et un fichier de configuration nous permet d’analyser les documents XML via des requêtes Xpath et de requêter et générer des formulaires de recherche automatiquement.
  • Nous envisageons d’écrire des parsers basés sur des expressions régulières afin d’analyser des fichiers de type Swiss-Prot ou autres fichiers textes structurés.
Limitations, difficultés, fonctionnalités importantes non couvertes: 

Les limitations de Lucene sont celles de ses utilisateurs (développement java, analyse documentaire, traitements linguistiques), ou celles de son modèle théorique : ni relationnel, ni hiérarchique. Ainsi, il peut souvent remplacer avec avantage une base de donnée relationnelles (SQL), du moins, tant que les relations sont surtout 1-n. Les requêtes de type numériques (tri, intervalles) ont été notablement améliorées ces deux dernières années. Pour des données fortement hiérarchisées (annuaires, thèses, inventaires d’archives), des simulations sont possibles, des outils comme LDAP, ou XQuery peuvent être plus commodes.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré: 

Ubuntu, Debian, redhat, … lucene est également intégré à Eclipse

Plates-formes : 
Logiciels connexes: 
Autres logiciels aux fonctionnalités équivalentes: 
  • Authority/Verity (commercial)
  • SRS SRS est un logiciel commercial d’indexation et de recherche de données dans des banques de séquences biologiques. Lucene peut constituer une alternative libre à ce logiciel.
  • Ht://dig est un moteur d’indexation et de recherche utile pour un site web.
  • Zebra
Environnement de développement
Type de structure associée au développement: 

Communauté ouverte

Eléments de pérennité: 

Fondation Apache. Financements Google, Yahoo!, HP.

Environnement utilisateur