Команда Manticore Search выпустила версию 27.1.5 - и это не рядовое обновление с горсткой патчей. За период с релиза 25.0.1 движок прошёл серьёзную трансформацию: встроенная безопасность, шардирование, диалоговый поиск на базе LLM и многопоточная сборка векторных индексов. Для опенсорсного поискового движка - заявка с характером.
Безопасность внутри, а не снаружи
Главная архитектурная новинка цикла - встроенная аутентификация и авторизация. Manticore теперь умеет работать с пользователями, паролями, bearer-токенами и гибко настроенными правами доступа для MySQL, HTTP/HTTPS и репликационных операций. Раньше контроль доступа приходилось выносить за пределы движка - теперь это часть самого продукта. ньюкасл юнайтед турнирная таблица
Важный нюанс для тех, кто планирует обновление: по умолчанию аутентификация отключена, и включать её нужно поэтапно. Сначала обновляются удалённые агенты и узлы репликации, затем - главные узлы. Включать аутентификацию следует только после того, как вся топология переведена на новую версию. Это не мелочь - анонимный доступ после активации перестаёт работать сразу.
Шарды, векторы и разговор с базой
Шардированные таблицы - ещё один крупный шаг. Движок теперь самостоятельно создаёт шарды, распределяет вставки и управляет жизненным циклом данных. Логику горизонтального масштабирования больше не нужно тащить в приложение. Для высоконагруженных проектов это существенно упрощает эксплуатацию.
Диалоговый поиск - пожалуй, самая неожиданная функция релиза. Через команды CREATE CHAT MODEL и CALL CHAT можно задавать вопросы прямо поверх векторизованной таблицы. Под капотом движок запускает KNN по полю FLOAT_VECTOR, формирует контекст для LLM из исходных колонок, сохраняет историю диалога по conversation_uuid и возвращает ответ вместе с источниками. Если эмбеддинги уже хранятся в Manticore - дополнительный RAG-слой больше не нужен.
Векторный поиск тоже заметно прибавил в скорости. Многопоточная сборка HNSW, добавленная в версиях 25.14.0 и 25.15.0, сократила время построения и перестройки индекса для крупных таблиц. Поддержка локальных эмбеддингов ONNX и ускоренный вывод появились ещё в 25.2.0 - с тех пор стек последовательно дорабатывался.
Аналитика, фасеты и утилиты
Фасетный поиск получил параметр facet_filter_mode, который упрощает построение товарных каталогов с сохранением сегментов при активном фильтре. На аналитической стороне - поддержка временных зон и смещений в date_histogram(), процентили, ранги процентилей, MAD и совместимость с OpenSearch Dashboards.
Среди утилитарных улучшений стоит выделить несколько:
- searchd --check - проверка конфигурации до запуска
- EXIT CLUSTER - выход из репликационного кластера без перезапуска
- dict=keywords_32k - индексация длинных токенов вроде хешей без усечения
- встроенный украинский лемматизатор для нативной морфологии
- интеграция с journald через systemd Type=notify
Что поправили и почему это важно
Список исправлений перевалил за 65 пунктов. Среди наиболее критичных - падение при получении columnar-атрибутов float_vector в 27.1.5, сбои при репликации и повторном присоединении узла, некорректный порядок пересчёта KNN при явных разделителях ORDER BY. Бинарный протокол MySQL был починен ещё в 25.12.1 - это критично для интеграций, требующих реальной клиентской совместимости.
Если вы используете кластеры репликации с нестандартным путём, стоит учесть изменение формата хранения из версии 26.0.0: реплицируемые таблицы теперь размещаются в data_dir/<таблица> вместо пути кластера. После обновления может потребоваться перемещение или повторная синхронизация. MCL обновлять вместе с демоном - обязательно. Смешивать библиотеку старой версии с новым демоном разработчики настойчиво не рекомендуют. Релиз 27.1.5 выглядит как движок, который наконец перестал быть «просто поиском» и начал претендовать на роль полноценной инфраструктурной платформы.