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 в продакшене.

You can take a test to reveal missed lore before start a training.

Test Your Might

You can start studying this pack. You'll receive 216 messages to help you review each card multiple times, following the principles of the forgetting curve.

Learn more about the spaced repetition method.

Schedule daily card reviews to quickly memorize or solidify the knowledge until it becomes second nature.

Learn more about daily practices.
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