Lucene или Apache Lucene - это Java-библиотека с открытым исходным кодом, используемая в качестве поисковой системы. Elasticsearch построен на основе Lucene.
Elasticsearch преобразует Lucene в распределенную систему/поисковый механизм для горизонтального масштабирования. Elasticsearch предоставляет и другие возможности, такие как пул потоков, очереди, API мониторинга узлов/кластеров, API мониторинга данных, управление кластерами и т.д. Одним словом, Elasticsearch расширяет Lucene и предоставляет дополнительные возможности, выходящие за его пределы.
Elasticsearch размещает данные на узлах данных. На каждом узле данных размещается один или несколько индексов, каждый индекс делится на шарды, в каждом из которых хранится часть данных индекса. Каждый шард, созданный в Elasticsearch, представляет собой отдельный экземпляр Lucene или процесс.
Примечания и полезные сведения
- Когда в Elasticsearch создается индекс, он делится на один или несколько первичных шардов для масштабирования данных и разделения их на несколько узлов/экземпляров.
- Поскольку каждый шард представляет собой отдельный экземпляр Lucene, создание слишком большого числа шардов приведет к потреблению ненужных ресурсов и снижению производительности.
- Чтобы определить количество первичных шардов для индекса, необходимо правильно спланировать его, учитывая размер индекса, максимальный рост и количество узлов данных.
- В предыдущих версиях Elasticsearch по умолчанию создавалось пять шардов для каждого индекса. Начиная с версии 7.0.0, по умолчанию теперь используется один шард на индекс.