Справочник по Elasticsearch 8

ElasticSearch 8 с нуля

Справочник по Elasticsearch 8

Курс «ElasticSearch 8 с нуля»: научитесь полнотекстовому и векторно-семантическому поиску, REST API, Query DSL и интеграции ES в бэкенд. Практика с первого урока.

RU Encyclopedias Elasticsearch поисковые движки анализ текста Query DSL DSL Векторный и семантический поиск
34Lessons
8Modules
RUEncyclopedia

Contents

1

Основы Elasticsearch и модель данных

1 Что такое Elasticsearch и зачем он нужен Поисково-аналитический движок поверх Lucene: где его применяют, чем он отличается от обычной БД и почему это near real-time, а не источник истины.
2 Документ, индекс и JSON: модель данных Документ как JSON-объект, поля, индекс как коллекция документов и метаполя вроде _id и _source — основные сущности, которыми оперирует ES.
3 Кластер, ноды, шарды и реплики Как данные распределяются: кластер из нод, primary- и replica-шарды, что такое отдельный индекс Lucene внутри шарда и зачем нужны реплики.
4 Типы полей: text, keyword, числа и даты Ключевое различие text и keyword, числовые поля, даты, объекты и приём multi-field, когда одно поле индексируют сразу несколькими типами.
5 Инвертированный индекс и движок Lucene Что на самом деле строится при индексации: инвертированный индекс «термин → документы», сегменты Lucene и почему полнотекстовый поиск такой быстрый.
2

Установка и первый доступ

6 Способы развернуть Elasticsearch 8: Docker, Elastic Cloud, self-managed и ECK Обзор вариантов запуска и их различий: локальный Docker для экспериментов, управляемый Elastic Cloud, установка на свои серверы и оператор ECK в Kubernetes.
7 Безопасность по умолчанию в Elasticsearch 8 Что меняет включённая «из коробки» защита: TLS, аутентификация, enrollment-токен, пароль пользователя elastic и как из-за этого выглядят первые запросы.
8 Kibana Dev Tools и работа через REST API Console в Kibana как основной инструмент: структура REST-запроса (метод, путь, тело), те же запросы через curl и заголовки авторизации.
3

Работа с данными через REST API

9 CRUD-операции над документами Индексация, чтение, обновление и удаление документа через _doc: автогенерация и явный _id, версионирование, частичный update и upsert.
10 Массовая загрузка данных через Bulk API Формат NDJSON, действия index/create/update/delete в одном запросе, разбор ответа и типичные ошибки при заливке больших объёмов.
11 Маппинг: явный, динамический и шаблоны индексов Как задать схему заранее, как ES угадывает типы динамически и почему маппинг нельзя менять задним числом; index templates для единообразных индексов.
12 Служебные API: _cat, здоровье кластера и настройки Быстрый осмотр системы через _cat (indices, nodes, shards), статусы health green/yellow/red и просмотр настроек индекса.
4

Текстовый анализ

13 Анатомия анализатора: char filters, токенизатор, token filters Конвейер анализа от сырого текста к токенам, разница между index- и search-анализом и проверка результата через API _analyze.
14 Анализ английского текста: стемминг и стоп-слова Встроенный анализатор english: токенизация, приведение к нижнему регистру, snowball-стемминг и стоп-слова — на конкретных примерах запросов.
15 Анализ русского текста: морфология, стемминг, Hunspell Встроенный анализатор russian, словарный разбор через Hunspell с локалью ru_RU и сторонние morphology-плагины; почему словоформы — главная сложность русского поиска.
16 Синонимы и кастомные анализаторы Сборка собственного анализатора из фильтров, работа synonym и synonym_graph, синонимы на этапе индексации и поиска, обновление словарей.
5

Полнотекстовый поиск и Query DSL

17 Query DSL: структура запроса и контекст query vs filter Как устроено тело _search, чем query context (влияет на _score) отличается от filter context (да/нет, кешируется) и когда что использовать.
18 Полнотекстовые запросы: match, match_phrase, multi_match Запросы по анализируемым полям: match и operator/minimum_should_match, поиск фразы через match_phrase и поиск по нескольким полям multi_match.
19 Точные совпадения и фильтры: term, range, exists Запросы без анализа ввода по keyword-полям, диапазоны по числам и датам, проверка наличия поля и классическая ловушка term по text-полю.
20 Составные запросы: bool и комбинирование условий Сборка сложных условий через must, should, filter и must_not, влияние веток на релевантность и minimum_should_match.
21 Подсветка, сортировка и пагинация результатов Highlight совпавших фрагментов, сортировка по полям и по релевантности, пагинация from/size и её предел, переход на search_after и PIT.
22 Релевантность и BM25: как считается _score Откуда берётся _score: модель BM25, влияние частоты терминов и длины поля, разбор оценки через explain.
23 Бустинг полей и function_score: управление ранжированием Как поднять важность отдельных полей и документов: boost, function_score, учёт свежести и популярности при ранжировании.
24 Перколятор: обратный поиск по сохранённым запросам Перевёрнутая модель поиска: запросы хранятся в индексе через тип поля percolator, а percolate-запрос прогоняет входящий документ и показывает, какие сохранённые запросы он удовлетворяет. Подсветка совпадений и сценарий алертов и подписок.
6

Векторный и семантический поиск

25 Векторный поиск: поле dense_vector и запрос kNN Как хранить эмбеддинги в dense_vector, метрики похожести, точный и приближённый kNN на HNSW, параметры k и num_candidates на примерах запросов.
26 ELSER и разреженные векторы для семантики Встроенная модель .elser_model_2: семантический поиск без своих эмбеддингов, поле sparse_vector и запросы semantic вместо устаревшего text_expansion.
27 Поле semantic_text и inference-эндпоинты Самый простой путь к семантике: semantic_text с автоматическим чанкингом и генерацией эмбеддингов через inference endpoint, запрос semantic.
28 Гибридный поиск: retrievers и RRF Объединение лексического и векторного поиска: синтаксис retrievers и Reciprocal Rank Fusion, почему гибрид обычно точнее каждого подхода по отдельности.
7

Агрегации и аналитика

29 Метрические и бакетные агрегации Два базовых класса: метрики (avg, sum, stats, cardinality) и бакеты (terms, range, date_histogram); запрос только за агрегациями через size: 0.
30 Вложенные агрегации и аналитические сценарии Под-агрегации внутри бакетов для срезов данных, типовые сценарии вроде статистики по категориям и распределений во времени.
31 Агрегации вместе с поиском и фильтрами Как считать агрегации по отфильтрованной выборке, строить фасетную навигацию для каталога и сочетать их с полнотекстовым запросом.
8

Эксплуатация Elasticsearch

32 Снапшоты и восстановление данных Единственный поддерживаемый способ бэкапа: snapshot repository, создание снапшотов через _snapshot и восстановление индексов.
33 Мониторинг и здоровье кластера Статусы green/yellow/red, чтение _cat и _cluster/health, базовые метрики нагрузки и распространённые причины unassigned-шардов.
34 Безопасность: пользователи, роли и API-ключи Модель доступа в ES 8: встроенные пользователи, роли и RBAC, API-ключи для приложений и место TLS в защите кластера.