En tant que créateur d'ElasticSearch, je peux peut-être vous expliquer pourquoi je l'ai créé en premier lieu :).
L'utilisation de Lucene pur est un défi. Il y a beaucoup de choses dont vous devez prendre soin si vous voulez qu'il soit vraiment performant, et aussi, c'est une bibliothèque, donc pas de support distribué, c'est juste une bibliothèque Java intégrée que vous devez maintenir.
En termes de convivialité de Lucene, il y a longtemps (presque 6 ans maintenant), j'ai créé Compass. Son objectif était de simplifier l'utilisation de Lucene et de rendre le quotidien de Lucene plus simple. Ce que j'ai rencontré à maintes reprises, c'est la nécessité de pouvoir distribuer Compass. J'ai commencé à y travailler à partir de Compass, en intégrant des solutions de grille de données comme GigaSpaces, Coherence et Terracotta, mais cela ne suffit pas.
À la base, une solution Lucene distribuée doit être sharded. De plus, avec l'avancée de HTTP et JSON en tant qu'API omniprésentes, cela signifie qu'une solution pouvant être utilisée par de nombreux systèmes différents avec des langages différents peut facilement être utilisée.
C'est pourquoi j'ai créé ElasticSearch. Il possède un modèle distribué très avancé, parle JSON de manière native et expose de nombreuses fonctionnalités de recherche avancées, le tout exprimé de manière transparente par le DSL JSON.
Solr est également une solution pour exposer un serveur d'indexation/de recherche via HTTP, mais je dirais que ElasticSearch offre un modèle distribué et une facilité d'utilisation bien supérieurs (bien qu'il y ait actuellement des lacunes dans certaines fonctions de recherche, mais pas pour longtemps, et de toute façon, le plan est de faire en sorte que toutes les applications de l Compass dans ElasticSearch). Bien sûr, je suis partial, puisque j'ai créé ElasticSearch, donc vous devrez peut-être vérifier par vous-même.
Quant à Sphinx, je ne l'ai pas utilisé, donc je ne peux pas faire de commentaires. Ce que je peux vous conseiller, c'est ce fil de discussion sur le forum Sphinx ce qui, je pense, prouve la supériorité du modèle distribué d'ElasticSearch.
Bien sûr, ElasticSearch a beaucoup plus de fonctionnalités que la simple distribution. Il est en fait construit avec le cloud en tête. Vous pouvez consulter la liste des fonctionnalités sur le site.