Elasticsearch: поиск, аналитика и архитектура

Этот набор карточек посвящён глубокому изучению Elasticsearch — одного из самых популярных поисковых и аналитических движков, построенного на базе Apache Lucene. Внутри вы разберёте, как устроен Elasticsearch на фундаментальном уровне: inverted index, процесс индексации, анализ текста, работа analyzer’ов, tokenizer’ов и фильтров. Отдельное внимание уделено mapping и типам данных, включая различия между text и keyword, а также управлению схемой и её эволюцией. Вы изучите архитектуру кластера: shard и replica, распределение данных, роли нод (master, data, ingest) и механизмы отказоустойчивости. Разберётесь, как работает near real-time модель консистентности, refresh interval и последствия eventual consistency. Большой блок посвящён поиску: match, term, bool-запросы, relevance scoring (BM25), filter vs query context. Также рассматриваются агрегации (terms, range, histogram), их ограничения и влияние на производительность. Практическая часть охватывает реальные сценарии: full-text поиск, autocomplete, логирование через ELK-стек, фильтрацию и сортировку результатов. Дополнительно вы изучите: - оптимизацию производительности (shards, mapping, типы запросов) - диагностику проблем (slow queries, метрики кластера) - анти-паттерны (использование как primary DB, ошибки в mapping) - ограничения Elasticsearch (отсутствие транзакций, eventual consistency) Этот набор подойдёт разработчикам, готовящимся к собеседованиям, а также тем, кто хочет уверенно использовать Elasticsearch в продакшене.

Перед началом обучения вы можете пройти тест, чтобы выявить пропущенные знания.

Пройти тест

Вы можете начать изучение этого набора. Вам будет отправлено 216 сообщений для повторения каждой карточки несколько раз в соответствие с кривой забывания.

Узнайте больше о методе интервального повторения.

Запланируйте ежедневные повторения карточек на случай если вам нужно запомнить за короткий срок или довести эти знания до автоматического уровня.

Узнайте больше о ежедневных практиках.
Elasticsearch — поисковый и аналитический движок

Elasticsearch — распределённый, масштабируемый движок для полнотекстового поиска и аналитики данных в реальном времени.

1/54
Elasticsearch vs реляционные БД и MongoDB
Краткий обзор различий между Elasticsearch, реляционными СУБД и document store (например, MongoDB).
2/54
Elasticsearch: когда подходит, когда нет

В каких сценариях Elasticsearch является правильным выбором (full-text search, аналитика), а в каких — нет?

3/54
Индекс (index) в Elasticsearch

Что такое индекс (index) в Elasticsearch и как он соотносится с базой данных или таблицей?

4/54
Документ (document) и хранение в индексе

Что такое документ (document) и как он хранится внутри индекса?

5/54
Shard и Replica

Что такое shard и replica, и какую роль они играют в масштабировании и отказоустойчивости?

6/54
mapping в Elasticsearch

Что такое mapping в Elasticsearch и как он определяет структуру и типы данных?

7/54
Распределение данных по shard’ам и влияние на производительность

Как происходит распределение данных по shard’ам и как это влияет на производительность?

8/54
Типы данных: text, keyword, numeric, date

Чем отличаются типы данных text, keyword, numeric и date и когда использовать каждый из них?

9/54
Разница между text и keyword

В чем разница между text и keyword и как это влияет на поиск и агрегации?

10/54
Dynamic mapping — что это и какие риски

Что такое dynamic mapping и какие риски он несёт?

11/54
Schema evolution (изменение mapping)

Как управлять schema evolution (изменением mapping) и какие ограничения существуют?

12/54
analyzer, tokenizer и filter

Что такое analyzer, tokenizer и filter, и как они влияют на поиск?

13/54
Индексация документа

Как происходит процесс индексации документа, включая анализ текста и построение inverted index?

14/54
Кастомный analyzer для языка/задачи

Как настроить кастомный analyzer под конкретный язык или задачу?

15/54
Нормализация текста: lowercase, stemming, stop words

Как работает нормализация текста (lowercase, stemming, stop words)?

16/54
Full-text поиск в Elasticsearch

Как работает full-text поиск в Elasticsearch, включая inverted index и scoring?

17/54
Relevance score (TF-IDF и BM25)

Что такое relevance score и как он рассчитывается (TF-IDF / BM25)?

18/54
Разница между match, term и bool запросами

В чем разница между match, term и bool запросами?

19/54
filter vs query контексты

Как работают filter и query контексты в Elasticsearch и в чем их различия?

20/54
bool (must, should, must_not)

Как комбинировать запросы с помощью bool: must, should, must_not?

21/54
Aggregation в Elasticsearch

Что такое aggregation в Elasticsearch и как он используется для аналитики?

22/54
Агрегации (terms, range, histogram)

Какие типы агрегаций существуют (terms, range, histogram) и их применение?

23/54
Elasticsearch: nested и pipeline агрегации

Как работают nested и pipeline агрегации в Elasticsearch?

24/54
Агрегации: ограничения и проблемы производительности

Какие ограничения и проблемы производительности возникают при агрегациях?

25/54
Факторы производительности Elasticsearch

Какие факторы влияют на производительность Elasticsearch (shards, mapping, запросы)?

26/54
Почему обновление документа — это фактически его перезапись?

Почему обновление документа — это фактически его перезапись?

27/54
Почему слишком большое количество shard'ов может быть проблемой

Почему слишком большое количество shard’ов может быть проблемой?

28/54
Как размер shard влияет на производительность

Как размер shard влияет на производительность?

29/54
Update и Delete в Elasticsearch — как работают и что такое переиндексация

Как работают операции update и delete в Elasticsearch, и в чём смысл переиндексации документа?

30/54
Консистентность в Elasticsearch (near real-time)

Какая модель консистентности используется в Elasticsearch (near real-time)?

31/54
Интервал обновления (refresh interval)

Что означает refresh interval и как он влияет на видимость данных?

32/54
Eventual consistency — возможные проблемы

Какие проблемы могут возникать из-за eventual consistency?

33/54
Дорогие запросы (wildcard, regex и др.)

Какие запросы считаются дорогими (например, wildcard, regex)?

34/54
Падение ноды и восстановление кластера

Что происходит при падении ноды и как восстанавливается кластер?

35/54
primary и replica shard’ы

Как работают primary и replica shard’ы?

36/54
Роли нод: master, data, ingest

Какие роли нод существуют (master, data, ingest)?

37/54
Масштабирование Elasticsearch по горизонтали

Как масштабируется Elasticsearch горизонтально, включая добавление нод?

38/54
Cluster coordination и выбор master‑ноды

Как в кластере координируются узлы и как выбирается мастер (лидер)?

39/54
Операции в pipeline

Какие операции можно выполнять в pipeline (например, парсинг, enrichment)?

40/54
Ingest pipeline — обработка данных перед индексацией

Что такое ingest pipeline и как он используется для обработки данных перед индексацией?

41/54
Поиск по тексту

Как реализовать поиск по тексту (например, поиск товаров или статей)?

42/54
Как использовать Elasticsearch для логирования (ELK stack)?

Краткое руководство по настройке логирования с использованием стека ELK (Beats → Logstash → Elasticsearch → Kibana).

43/54
Autocomplete в Elasticsearch

Для автодополнения в Elasticsearch чаще используют completion suggester, search_as_you_type или индексирование с edge_ngram/ngram.

44/54
Фильтрация и сортировка результатов поиска

Как реализовать фильтрацию и сортировку результатов поиска?

45/54
Почему нельзя использовать Elasticsearch для транзакционных операций?

Почему нельзя использовать Elasticsearch для транзакционных операций?

46/54
Проблемы при неправильном mapping

Какие проблемы возникают при неправильном mapping?

47/54
Анти-паттерны в Elasticsearch

Какие основные анти-паттерны в Elasticsearch (например, использование как primary DB)?

48/54
Важные метрики производительности

Какие метрики важны (latency, query time, indexing rate, heap usage)?

49/54
Когда Elasticsearch — плохой выбор

Когда Elasticsearch — плохой выбор (OLTP, строгая консистентность)?

50/54
Диагностика медленных запросов и проблем кластера

Краткая шпаргалка по последовательной диагностике slow queries и общих проблем кластера БД (нагрузка, репликация, I/O, блокировки).

51/54
Когда Elasticsearch — правильный выбор

Когда Elasticsearch — правильный выбор (search, analytics, logs)?

52/54
Механизмы безопасности: аутентификация, авторизация, TLS

Краткий обзор основных механизмов безопасности: аутентификация, авторизация и TLS.

53/54
Ограничения масштабирования (fixed shard count)

Какие ограничения есть у масштабирования (например, fixed shard count)?

54/54
WitSlice © 2026