lucene

Fiche logiciel validé
  • Création ou MAJ importante : 28/01/13
  • Correction mineure : 28/01/13
  • Rédacteur de la fiche : Pierre Couchet - Archives Henri Poincaré (CNRS, Université de Lorraine)
  • Relecteur(s) : Robert Bossy (MIG INRA Jouy-en-Josas)
    Frédéric Glorieux (École nationale des chartes)
  • Contributions importantes : Frédéric Glorieux
    Sébastien Carrère était le premier auteur de cette fiche, mais n'étant plus utilisateur de lucene il a accepté de passer la main en Décembre 2012
  • Responsable thématique : Emmanuel Courcelle (LIPM)
Mots-clés
Pour aller plus loin

lucene : moteur d'indexation et de recherche

Description
Fonctionnalités générales

Lucene est un moteur de recherche libre écrit en Java qui permet d'indexer et de rechercher du texte. Ce logiciel libre de la fondation Apache permet la recherche plein texte (avec des analyseurs linguistiques) et documentaire (avec des champs adaptés à chaque type de 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 incluait récemment différents sous-projets tels Lucene.Net, Mahout, Solr et Nutch. Solr a été récemment fusionné avec Lucene, alors que Mahout, Nutch, et Tika sont devenus des projets indépendants.

Lucene intéresse les développeurs d'applications des bibliothèques, des archives, du secteur de l'édition numérique, de la linguistique, de l'histoire, ainsi que les bio-informaticiens qui doivent manipuler des banques de séquences biologiques.

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 dans mon laboratoire/service

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 :
Lucene est utilisé pour analyser et indexer principalement des fichiers XML, contenant des données de biologie.
- Implémentation C++ (Clucene) et interface perl Lucene.pm.
- Une paire de scripts et un fichier de configuration permettent d'analyser les documents XML via des requêtes Xpath et de requêter et générer des formulaires de recherche automatiquement.

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érique (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.

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur