Elasticsearch
Раздел про Elasticsearch для backend-разработчика: устройство (inverted index, cluster, shards, replicas, mapping, analyzers), Query DSL и relevance scoring (BM25, boosting, aggregations), интеграция со Spring Data Elasticsearch, эксплуатация (ILM, snapshots, hot/warm/cold, sizing, мониторинг).
Зачем для UCP. Elasticsearch — стандартный движок для полнотекстового поиска, фасетов и near-real-time аналитики в UCP-сервисах. Когда
WHERE name ILIKE '%query%'в Postgres тормозит, или нужны весовые ranking-запросы — это сюда. Соответствует фазе «Поиск» программы.
Раздел разбит на четыре статьи: основы (устройство), запросы (DSL и relevance), интеграция (Spring Data ES), эксплуатация (ILM/snapshots/sizing). Примеры — на той же паре category + product, что и в PostgreSQL / MongoDB, чтобы было легко сравнивать подходы.
Статьи раздела
- Fundamentals: inverted index, cluster, shards, mapping, analyzers — как ES хранит и ищет, почему быстро, что такое анализаторы и зачем mapping.
- Query DSL и relevance scoring — match/term/bool, BM25, boosting, фасеты через aggregations, типичные запросы каталога товаров.
- Spring Data Elasticsearch: клиент, репозитории, индексация —
ElasticsearchOperations,ElasticsearchRepository, паттерны индексации, CDC из PostgreSQL/Mongo через Debezium + Kafka. - Operations: ILM, snapshots, hot/warm/cold, sizing, мониторинг — управление жизненным циклом индексов, бэкапы, многоуровневое хранилище, производительность, метрики Prometheus.
Связанное
- PostgreSQL — основное хранилище. ES обычно дополняет, не заменяет.
- MongoDB — альтернатива для документных данных. У них разный фокус (Mongo — OLTP, ES — search).
- Apache Kafka — типичный transport для синхронизации PG/Mongo → ES через CDC.
- Распределённые паттерны — выбор между dual write и CDC при синхронизации.