· Tech watch

Le point sur Apache Solr

A propos de Solr

Solr est un moteur de recherche Open Source basé sur la librairie Lucene. Il tire parti de cette librairie pour fournir une puissante recherche full-text, une recherche par facette, une gestion de la pertinence des résultats le tout embarqué dans un serveur HTTP indépendant.
Il offre également une réplication des index ainsi qu’une fonctionnalité de recherche distribuée lui permettant d’avoir une scalabilité importante.
Solr peut être interfacé avec n’importe quelle technologie grâce à son API REST.

{{Le {merge Solr/Lucene}}}

Il y a quelque temps, Solr et Lucene étaient deux projets Apache séparés, avec des développeurs et des rythmes de développement différents. Le seul point commun était l’utilisation de Lucene par Solr.

Après consultation entre les responsables des projets, la conclusion a été la suivante : Solr utilise une version non standard de Lucene, des implémentations de nouvelles fonctionnalités sont faites dans Solr alors que leur place est dans Lucene, les releases ne sont pas homogènes et entraînent des problèmes de stabilité sur l’utilisation de différents composants.

L’idée du merge entre les deux projets est donc ressortie avec les motivations suivantes :
– Lucene va pouvoir bénéficier de fonctionnalités développées dans Solr uniquement (Analyzers, Query parsers, …).
– Lucene va bénéficier d’une meilleure testabilité car chaque changement sera testé dans Solr également.
– Les deux projets vont pouvoir bénéficier d’une plus grande communauté.

C’est donc sur ces motivations que le merge a commencé en mars dernier. Aujourd’hui, les deux projets sont sur le même trunk, les releases sont faites au même moment, Solr utilise les dernières fonctionnalités de Lucene et inversement, les développeurs travaillent sur les deux projets.

La suite ?

La branche 1.5 de Solr a été abandonnée pour devenir la branche 3.x qui intègre donc le merge avec Lucene. La prochaine version stable sera donc la version 3.1 tant dis que le trunk actuel (de Solr et Lucene) aboutira sur une version 4.0.

La nouvelle version de Solr est donc attendue avec impatience, voici les principaux axes d’amélioration prévus :
SolrCloud : le premier pas vers une gestion des clusters simplifiée notamment avec l’utilisation de Zookeeper. Les objectifs sont : une élasticité (changement de cluster automatique, gestion du partitionnement des documents.), une haute disponibilité pour l’écriture, l’élimination de tous les SPOF.
– La recherche spatiale : support du filtre et du tri par distance
Near Real-time : réduction du temps entre l’indexation et la visibilité des données
– [Field-collapsing->http://wiki.apache.org/solr/FieldCollapsing] : gestion des résultats « par catégorie »

Pour en savoir plus…

Les nouveautés de la version 1.4
Plus d’informations sur le merge
SolrCloud
Zookeeper