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