Основные концепции
Тема дорожной карты · Elasticsearch
Elasticsearch — это распределённый поисковый и аналитический движок, построенный на Apache Lucene, и понимание его ключевых концепций необходимо перед тем, как приступать к работе с Elastic Stack. Фундаментальная единица данных — документ, JSON-объект, хранящийся в индексе, который по смыслу примерно соответствует таблице в реляционной базе данных. Каждый индекс делится на один или несколько шардов — самостоятельных экземпляров Lucene, позволяющих Elasticsearch распределять как данные, так и нагрузку на запросы между несколькими узлами кластера. Именно структура инвертированного индекса внутри каждого шарда и обеспечивает высокую скорость Elasticsearch: она отображает термины на содержащие их документы, давая возможность выполнять полнотекстовый поиск среди миллиардов записей за доли секунды. Дополнительные концепции — реплики (копии шардов для отказоустойчивости), маппинги (определение схемы для типов полей) и анализаторы (конвейеры обработки текста) — надстраиваются поверх этого фундамента и настраиваются через Query DSL и REST API, предоставляемые Elasticsearch.
Как это работает
Основные концепции: Index — логическая коллекция документов (аналог DB-таблицы). Документы — JSON, идентифицируются _id. Индексы делятся на Shards (Lucene-индексы) — primary + replica копии, распределённые по нодам. Inverted Index — on-disk структура, делающая full-text search быстрым: term → список документов с ним. Роли нод: master (cluster state), data (хранение + queries), ingest (pipelines), coordinating (роутинг запросов). Современные кластеры часто используют dedicated роли для стабильности.
Когда применять
Планируйте shard count ДО индексации — primary shards не меняются после создания (только через reindex). Целитесь в 10-50GB на shard. Replicas: минимум 1 в prod (HA + read throughput). Для time-series (logs) — ILM + rollover вместо огромных fixed-индексов. Dedicate master + data + coordinator роли на масштабе (50+ нод).
Типичные ошибки
Ловушки Основные концепции: много маленьких shards ("shard explosion" — cluster state растёт, master перегружен); single-shard индексы, растущие огромными (не параллелятся queries); нет replicas в prod (одна нода вниз = data loss); all-rounder ноды на масштабе (master-задачи заглушены data-queries).
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…