web-dev-qa-db-fra.com

Quelle est la différence entre Lucene et Elasticsearch

Je sais que ElasticSearch est basé sur Apache Lucene mais je souhaite connaître les différences significatives entre les deux.

102
Satish Madiwal

Lucene est un bibliothèque Java. Vous pouvez l'inclure dans votre projet et vous référer à ses fonctions à l'aide d'appels de fonction.

Elasticsearch est un [~ # ~] json [~ # ~] basé, distribué, serveur Web construit sur Lucene . Bien que ce soit Lucene qui effectue le travail en dessous, Elasticsearch nous fournit un calque pratique sur Lucene. Chaque fragment créé dans Elasticsearch est une instance distincte de Lucene. Donc pour résumer

  1. Elasticsearch est construit sur Lucene et fournit une API basée sur JSON REST) ==) == pour faire référence aux fonctionnalités de Lucene.
  2. Elasticsearch fournit un système distribué sur Lucene. Un système distribué n'est pas quelque chose dont Lucene est consciente ou construite. Elasticsearch fournit cette abstraction de la structure distribuée.
  3. Elasticsearch fournit d'autres fonctionnalités de support telles que pool de threads, files d'attente, API de surveillance de nœud/cluster, API de surveillance de données, gestion de cluster, etc.
161
Vineeth Mohan

En plus de @ Vineeth Mohan mots:

Haute disponibilité: Elasticsearch est distribué, ce qui lui permet de gérer la réplication de données, ce qui signifie que vous disposez de plusieurs copies de données dans votre cluster. Cela permet une haute disponibilité.

Powerful Query DSL: Elasticsearch nous offre une interface JSON pour la lecture et l’écriture de requêtes sur Lucene. Grâce à Elasticsearch, vous pouvez écrire des requêtes complexes sans connaître la syntaxe de Lucene.

Schemaless (Schema-Free): Les champs (nom, paires de valeurs) pour schema ne doivent pas être définis auparavant. Lorsque vous indexez des données, elasticsearch peut créer un schéma automatiquement au moment de l’exécution, comme par magie.

19
fgul