ElasticSearch ou SolR pour votre moteur de recherche ?
L'importance d'un bon moteur de recherche interne pour un site web, un intranet et plus encore un site E-commerce n'est plus à démontrer. C'est de lui que dépendent en grande partie l'engagement, la conversion, la qualité et le ressenti des visiteurs.
Si vous êtes dans un processus de mise en place d'un nouveau site, de refonte d'un site existant, ou si vous êtes confronté à la fin de Google Search Appliance, quel outil choisir ? Quels sont les critères à privilégier ? Coût, facilité d'intégration, pertinence ?
Deux solutions sont notamment en lice pour votre moteur de recherche interne : ElasticSearch, et Apache SolR. Quels sont les origines, avantages, et inconvénients de chacune ? Voici quelques éléments de réponse argumentés.
N'hésitez pas non plus à aller consulter notre article sur les solutions Saas de recherche, qui offrent aussi bien des réponses intéressantes.
SolR et ElasticSearch, deux solutions nées d'un même projet : Lucène
Paradoxalement, ces deux solutions souvent mises en compétition sont issues... d'une origine commune. Toutes les deux sont nées de "Lucène", une bibliothèque open source qui permet d'indexer et de chercher du texte. Il n'y a pratiquement pas aujourd'hui une grande entreprise dans le monde qui n'utilise pas l'une ou l'autre de ces deux solutions, de Renault en passant par General Motors ou encore Blablacar. Mais elles diffèrent sur quelques points importants.
SolR possède l'avantage de l'ancienneté, car cette solution existe depuis 2004. ElasticSearch n'a vu le jour qu'en 2010, mais elle est adossée à une société, Elastic. Elle dispose donc naturellement d'un support et d'hébergement en mode SaaS si besoin. Toutefois, SolR peut disposer aussi de cette facilité, si l'on fait appel à la société LucidWork qui la propose.
On le voit donc d'entrée : il ne sera pas facile de départager ces 2 solutions. D'ailleurs, comme souvent, il ne s'agira probablement pas pour vous de déterminer la meilleure solution dans l'absolu, mais plutôt celle qui répondra le mieux à vos besoins, à votre contexte et à vos usages.
Quelques clés pour la décision entre ElasticSearch et SolR
Sans entrer dans des considérations techniques trop complexes, on peut lister quelques critères de décision qui doivent orienter votre choix.
1. Popularité et accessibilité d'ElasticSearch : un avantage en comparaison avec SolR
ElasticSearch est la solution la plus populaire des deux. Elle le doit notamment à son éditeur qui dispose de capacités marketing et communication plus performantes. Ce sont plusieurs millions d'euros qui vont être consacré à son développement dans les prochaines années. Elle bénéficie en conséquence d'une meilleure documentation, plus facile d'accès, même pour les non techniciens et d'API plus développées qu'avec SolR. Une personne qui n'est pas familiarisée avec les problématiques de la recherche appréciera ce point.
En bleu le volume de recherche Elasticsearch sur Google vs. SolR
Apache SolR dispose elle d'une large communauté "open source", ce qui peut-être un atout dans certains cas. La documentation technique est fouillée, mais sans doute moins accessible que pour Elastic qui a vocation à s'adresser à un public qui n'est pas nécessairement expert des questions de recherche.
2. Performances et vitesse : ex-aequo pour SolR et ElasticSearch
La vitesse d'indexation et de réponse étant l'un des facteurs clé d'un bon moteur de recherche, il est important de s'assurer de la performance de celui-ci. Beaucoup de tests ou d'articles ont été publiés sur Internet à ce sujet. Elastic est sans doute un peu mieux adapté pour rechercher rapidement des données qui évoluent fréquemment, tandis que SolR est plus efficace dans des entrepôts de données plus statiques. Elastic est aussi plus adapté, nativement, pour une montée en charge rapide en cas de besoin. C'est ce que l'on nomme la "scalabilité". Du fait de sa conception, SolR ne le permet qu'avec le recours au logiciel "Zookeeper". Mais l'objectivité oblige à reconnaître que les deux solutions ne peuvent être départagées sur ce critère. Elles offrent un haut niveau de performance, et sont équivalentes pour peu qu'on les mette en œuvre dans les règles de l'art, sur une architecture bien dimensionnée.
Par ailleurs, les offres Saas proposées par Elastic ou LucidWork apportent des réponses intéressantes pour garantir une montée en charge efficace.
3. Fonctionnalités : quelques différences entre Elasticsearch et SolR
Vous voulez comparer les fonctionnalités d'ElasticSearch et SolR pour espérer choisir le meilleur moteur de recherche open source ? Elles sont assez proches... Ce qui est dû à leur origine commune, mais aussi au fait que la recherche interne obéit à une logique universelle. Les deux proposent des fonctions de vérification orthographiques, une gestion des synonymes, d'expressions exactes, de recherches boléennes, des fonctions de racinisation, de la recherche plein texte, l'agrégation des facettes... Les deux proposent des outils de machine learning, avec toutefois quelques différences d'approches : SolR embarque ainsi le projet Open NLP permettant de traiter le langage naturel, tandis qu'Elastic propose un composant dédié de machine learning capable de détecter et d'analyser en temps réel des anomalies.
Difficile, quand on n'est pas un expert avancé des solutions de recherche, d'identifier des réels avantages ou discriminants qui s'appliqueraient pour tous les projets. Néanmoins, on peut considérer SolR comme étant plus adapté à des contextes de recherche dans de larges silos de données non structurées, peu vivantes, tandis qu'Elastic fait merveille dans l'analyse de données en temps réel et plutôt structurées.
Comment choisir alors entre Apache SolR et ElasticSearch ?
Une comparaison possible est : "SolR est comme Linux, Elastisearch est comme Windows". Vous pouvez adapter plus facilement SolR à vos besoins, mais cela vous demandera plus de travail et plus de temps. Elasticsearch est rapide et facile à déployer, utiliser et mesurer. Si vos équipes n'ont pas de compétence particulière sur ces technologies, Elastic sera beaucoup plus simple à appréhender grâce à ses nombreuses API et ses outils natifs de clustering.
Elasticsearch est plutôt plus adapté à des contextes d'exploration de données structurées, en temps réel. Elastic, avec Kibana vous offre par ailleurs des outils intéressants de restitution graphique et analytiques de vos données. SolR sera plus adapté quand vous aurez besoin d'indexer des données plus statiques et moins structurées.
Le futur des moteurs de recherche se situe désormais dans l'analyse des contenus, les modèles prédictifs, l'analyse du langage naturel et le machine learning. Elastic et SolR avancent tous les deux sur ces sujets très vite, avec des points de différenciation qui deviennent discriminants. Affaire à suivre ! ...