Я знаю, что ElasticSearch построен на Apache Lucene, но я хочу знать существенные различия между ними.
Я знаю, что ElasticSearch построен на Apache Lucene, но я хочу знать существенные различия между ними.
Ответы:
Lucene - это библиотека Java . Вы можете включить его в свой проект и ссылаться на его функции с помощью вызовов функций.
Elasticsearch является JSON Based, Распределенная , веб - сервер построен на Lucene. Хотя фактическую работу ниже выполняет Lucene, Elasticsearch предоставляет нам удобный слой поверх Lucene. Каждый шард, создаваемый в Elasticsearch, представляет собой отдельный экземпляр Lucene. Итак, чтобы подвести итог
В дополнение к словам @Vineeth Mohan :
Высокая доступность: Elasticsearch является распределенным, поэтому он может управлять репликацией данных, что означает наличие нескольких копий данных в вашем кластере. Это обеспечивает высокую доступность.
Мощный DSL запросов : Elasticsearch предлагает нам интерфейс JSON для чтения и записи запросов поверх Lucene. Благодаря Elasticsearch вы можете писать сложные запросы, не зная синтаксиса Lucene.
Schemaless (без схемы): поля (имя, пары значений) для schema
необязательно определять раньше. Когда вы индексируете данные, elasticsearch может автоматически создавать схему во время выполнения, как по волшебству.
Я отвечу с точки зрения использования.
Lucene - это библиотека для поисковых систем . Вы хотели бы использовать его для создания собственной поисковой системы: либо новый конкурент Elasticsearch или Solr, либо что-то узкое для вашего варианта использования (например, анализ текста).
Elasticsearch - это поисковая система . Большинство людей используют его для агрегирования журналов, поиска товаров или их варианта (например, анализа социальных сетей или поиска подходящих людей по некоторым критериям поиска). Он построен на основе Lucene, поэтому раскрывает большинство (хотя и не все) его функций . Это также добавляет много нового, и самое главное: