Solr

elasticsearch

Solr et Elasticsearch sont des moteurs de recherche open source permettant l’indexation de données.

Jusqu’en 2012 Solr était leader sur son créneau mais Elasticsearch a commencé à changer la donne et l’on entend de plus en plus parler de lui. Pourquoi ?

Similitudes

Les deux middlewares s’appuient sur un socle commun : Apache Lucene (il s’agit d’une librairie Java open-source d’indexation et de recherche full-text). Solr et Elasticsearch apportent une couche d’abstraction permettant d’utiliser plus facilement Lucene en offrant :

  • des fonctionnalités d’indexation et de recherche
  • une API de type Web Service (RESTFull)
  • une interface web (notamment pour l’administration),
  • des fonctionnalités pour la réplication d’index (utile en environnement distribué)

Différences

Une première différence entre les deux middlewares s’observe dans la manière de gérer le mode cluster (distribution, réplication, gros volume, temps-réel…). Dans Elasticsearch si l’on a plusieurs nœuds il suffit qu’un index soit créé sur l’un d’eux pour que la donnée soit répliquée sur les autres de manière native. Dans Solr c’est plus compliqué, il va falloir beaucoup plus de configuration (SolrCloud est une réponse aux problématiques de cluster, c’est une solution que je n’ai jamais testée encore).

Une autre différence majeure est la structuration des index. Dans Solr il faut définir cette structure au sein du fichier schema.xml (l’outil n’acceptera que ce qui correspond à ce qui est définit) alors que dans Elasticsearch c’est beaucoup plus souple, on n’a pas besoin de définir de structure de données. L’outil s’adapte dynamiquement en fonction du type de données qu’il reçoit (l’outil acceptera donc différents types de données).

Voici une comparaison détaillée de Solr et Elasticsearch où l’on peut retrouver toutes les différences : http://solr-vs-elasticsearch.com

Conclusion

Au final les deux outils diffèrent dans leur choix techniques de gestion du cluster. Elasticsearch est plus facile à mettre en oeuvre et ne nécessite pas de beaucoup de configuration ou d’installation d’outils supplémentaires.

Elasticsearch est également un outil soutenu par la société Elastic où tout est fait pour promouvoir le middleware. Plus d’argent, plus de communication et de marketing, plus d’évolutions et donc de nouvelles fonctionnalités…

Si vous utilisez Solr actuellement je vous conseille fortement de tester Elasticsearch afin de vous faire votre propre idée et de pourquoi pas changer d’outil pour un prochain projet !

MàJ : voici un petit article intéressant sur la future release majeure d’ElasticSeach
http://blog.zenika.com/index.php?post/2015/09/02/elasticsearch-2.0

Publicités