Полнотекстовый поиск для приложений
Пользователь вводит «ноутбук леново» — ожидает релевантные результаты за миллисекунды. LIKE '%ноутбук%' в SQL на миллионах строк — не решение. Для текста, ранжирования и опечаток нужен полнотекстовый поиск (FTS).
Уровни решения
| Подход | Когда достаточно | Ограничения |
|---|---|---|
| B-tree + префикс | Автодополнение по коду | Не полнотекст |
| FTS в PostgreSQL / MySQL | Один источник правды, умеренная нагрузка | Сложная кластеризация, меньше фасетов «из коробки» |
| Elasticsearch / OpenSearch | Большой каталог, агрегации, гибкий scoring | Отдельный кластер, синхронизация с БД |
| Meilisearch / Manticore | Быстрый старт, typo-tolerance | Меньше экосистема enterprise |
| MongoDB text index | Уже на документной модели | Слабее аналитика чем ES |
Справочник по стеку ELK в эксплуатации: DevOps — Elasticsearch.
Базовые понятия
| Термин | Смысл |
|---|---|
| Документ | Единица индексации (товар, статья, тикет) |
| Индекс | Именованный набор документов |
| Анализатор | Токенизация, стемминг, стоп-слова («и», «в») |
| Inverted index | Слово → список document id |
| Score / BM25 | Релевантность выдачи |
| Facet / aggregation | Фильтры «бренд», «цена» в боковой панели |
Морфология для русского: формы «ноутбук», «ноутбуки» должны находиться одним запросом — настраивается анализатором.
Поток данных
- Запись в БД — источник истины.
- Синхронизация в поисковый индекс:
- синхронно при записи (просто, риск задержки API);
- асинхронно через очередь (рекомендуется);
- CDC (change data capture) из WAL.
- Поисковый запрос — только в движок, ID → обогащение из БД при необходимости.
Идемпотентность индексации: повторное событие product_updated не должно ломать документ.
Запросы и bulk
- Поиск: query string, match phrase, fuzzy для опечаток.
- Bulk API — пачковая индексация при реиндексации каталога.
- Alias — переключение
products_v2→productsбез даунтайма.
Не индексируйте в поиск пароли и PII, если нет юридической необходимости.
Операционные риски
| Риск | Митигация |
|---|---|
| Расхождение БД и индекса | Периодическая сверка, dead-letter очередь |
| Рост индекса | TTL, архив, отдельные индексы по годам |
| Медленный агрессивный fuzzy | Лимиты, min score |
| Split-brain в кластере | Кворум, мониторинг (PACELC) |
Критерии выбора (чек-лист)
- Нужны ли фасеты и сложный scoring?
- Объём документов > 1–10 млн?
- Допустима ли eventual consistency в выдаче?
- Есть ли команда для кластера поиска?
- Достаточно ли PostgreSQL
tsvectorна первые 2 года?
Если пункты 1–2 «нет» — начните с FTS в основной БД, не с Elasticsearch.
Связанные темы
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Администрирование как системная практика - управление доступами, обновлениями, резервным копированием и стабильностью IT-инфраструктуры. Установка ОС - это когда мы ставим её на чистый или отформатированный компьютер. Если аппаратное обеспечение — это тело инфраструктуры, то программное обеспечение — её нервная система. Без ПО железо остаётся набором нефункциональных компонентов. Система сохраняет видимость работоспособности, продолжает отвечать на базовые запросы и проходит поверхностные проверки, однако внутри накапливает критическую массу проблем, ведущих к внезапному коллапсу или глубокой деградации сервиса. Настройка и обслуживание серверов - развёртывание узла в инфраструктуре, базовая конфигурация и контроль стабильной эксплуатации. Групповые политики Windows - централизованное применение настроек в домене и управление конфигурацией рабочих станций. Конфигурация рабочих станций - настройка сетевых параметров, подключение к инфраструктуре и стандартизация клиентской среды. Сетевые подключения и диагностика - карта узлов, роль коммутаторов и базовые методы поиска проблем в гетерогенной сети. Домашняя сеть: устройства, маршрутизатор, Wi‑Fi, общий доступ к файлам и принтерам, UNC-пути в проводнике Windows. Microsoft Entra ID (ранее Azure Active Directory) — облачный каталог идентичностей для Microsoft 365, Azure и тысяч SaaS по протоколу SSO. Windows Server — серверное семейство ОС на ядре Windows NT, предназначенное для корпоративной инфраструктуры: каталоги пользователей, файловые и веб-службы, виртуализация, контейнеры, сетевые роли. Проброс портов — это явное исключение из стандартного поведения NAT, которое блокирует все входящие соединения. Он не включается автоматически и требует ручной конфигурации.Администрирование
Установка и первоначальная настройка ОС
ИТ-инфраструктура
Сетевые аномалии и системные процессы
Настройка и обслуживание серверов
Групповые политики в Windows
Конфигурация рабочих станций
Сетевые подключения и диагностика
Организация домашней сети
Идентичность Microsoft Entra и RBAC
Windows Server — начало работы
NAT и проброс портов