Выпущена версия Manticore Search 27.1.5.

Текущий релиз включает в себя следующие изменения: встроенная аутентификация и авторизация, шардированные таблицы, диалоговый поиск, более быстрая сборка HNSW, улучшенные фасеты и агрегации, а также длинный список исправлений в областях KNN, репликации, совместимости протоколов и других.

Этот пост — обзор всего, что было выпущено с версии 25.0.1 по 27.1.5.


Примечания к обновлению

Пожалуйста, ознакомьтесь с ними перед обновлением:

  • В версии 27.0.0 добавили встроенную аутентификацию/авторизацию, и её включение меняет порядок доступа. По умолчанию аутентификация отключена, но после её активации анонимный доступ перестаёт работать. Советуем включать аутентификацию поэтапно: сначала обновите удалённые агенты и узлы репликации, затем — главные узлы, к которым выполняются запросы, и включайте аутентификацию только после того, как вся топология будет на новой версии. Распределённые операции, связанные с агентами, работающими удаленно и репликацией, также требуют синхронизированных данных аутентификации между всеми участвующими демонами. Успешное выполнение JOIN CLUSTER заменяет локальные данные аутентификации присоединяющегося узла данными аутентификации донорского узла. (Issue #2833 , PR #3648 )

  • В 26.0.0 изменили формат хранения данных репликации. Теперь реплицируемые таблицы размещаются в обычном каталоге data_dir/<таблица> вместо пути кластера. Если вы используете кластеры репликации с пользовательским путём, после обновления может потребоваться переместить или повторно синхронизировать реплицируемые таблицы. Откат на предыдущую версию безопасен только до перехода на новую структуру хранения. (Issue #4431 , PR #4598 )

  • Если вы управляете MCL отдельно от демона, обновляйте его вместе с Manticore. В этой серии релизов было несколько обновлений MCL — от работы над производительностью векторов до многопоточной сборки HNSW и последующих исправлений стабильности. Смешивать старую библиотеку с новым демоном не рекомендуется. (25.2.0 , 25.15.0 , 26.0.3 , 26.3.2 , 27.1.0 )


Основные нововведения

Встроенная аутентификация и авторизация

Теперь Manticore поддерживает пользователей, пароли, bearer tokens и гибко настроенные пермиссии для MySQL, HTTP/HTTPS, распределённых удалённых агентов и операций, связанных с репликацией. Это делает контроль доступа неотъемлемой частью продукта, а не чем-то, что всегда нужно обрабатывать вне базы данных.

Шардированные таблицы

Manticore теперь может создавать и управлять шардированными таблицами, распределять вставки по шардам и обрабатывать большую часть сопутствующего жизненного цикла из коробки. Это упрощает эксплуатацию Manticore в крупных проектах с высокой нагрузкой на запись и уменьшает объём логики шардирования, которая должна находиться вне движка.

Диалоговый поиск

В этом релизе в Manticore Search добавлен диалоговый поиск. Он доступен через команды CREATE CHAT MODEL и CALL CHAT, позволяя задавать вопросы поверх существующей векторизованной таблицы, вместо того, чтобы создавать отдельный слой поиска поверх тех же данных.

Под капотом Manticore Search запускает KNN по полю FLOAT_VECTOR, создаёт контекст LLM из столбцов источника этого поля from='...', сохраняет историю диалога по conversation_uuid  и возвращает как ответ, так и подтверждающие источники. Если вы уже храните эмбеддинги в Manticore, это значительно упрощает настройку ответов на вопросы по документам и помощников в стиле поддержки.

Более быстрая сборка векторов и улучшения KNN

Векторный поиск постоянно улучшался на протяжении всего цикла разработки.

Мы улучшили производительность KNN, добавили поддержку локальных эмбеддингов ONNX, ускорили вывод ONNX, а затем значительно ускорили сборку и перестройку HNSW за счёт многопоточного построения индекса.

Несколько важных шагов в этой работе:

  • 25.1.0 — улучшен расчёт расстояния KNN и загрузка AVX‑512.

  • 25.2.0 — добавлена поддержка локальных эмбеддингов ONNX в MCL и дополнительно улучшена производительность векторного поиска.

  • 25.14.0 и 25.15.0 — добавлены многопоточные сборки HNSW вместе с необходимой поддержкой со стороны библиотеки MCL.

Самое большое практическое улучшение здесь — значительно более быстрое автоматическое эмбеддинг‑преобразование и сокращение времени сборки и перестройки для больших векторных таблиц. Это затрагивает первоначальные сборки KNN, объединение чанков иALTER TABLE ... REBUILD KNN.

Улучшенные фасеты и агрегации

Расширены возможности фасетов и агрегаций:

facet_filter_mode упрощает создание фильтров каталогов товаров, которые сохраняют выбранные, доступные и недоступные сегменты при активном фильтре.

На стороне аналитики:

  • date_histogram() получил параметры time_zone и offset

  • Поддержка Opensearch Dashboards

  • Добавили статистические агрегации, такие как процентили, ранги процентилей и MAD


Другие заметные улучшения

В этом релизе также есть несколько небольших, но полезных дополнений:

  • searchd --check проверяет конфигурацию перед запуском.

  • EXIT CLUSTER позволяет узлу покинуть кластер репликации онлайн без перезапуска.

  • dict=keywords_32k позволяет индексировать очень длинные автоматически генерируемые токены, такие как хеши и идентификаторы сообщений, без неявного усечения.

  • встроенный украинский лемматизатор расширяет нативную поддержку морфологии для поиска по украинским текстам.

  • Systemd Type=notify улучшает контроль запуска и завершения работы.

  • Manticore под управлением systemd теперь пишет логи в журнал systemd 

  • Запросы JOIN теперь поддерживают явные префиксы столбцов левой таблицы.

  • manticore-load получил поддержку мультизапросов.


Исправления ошибок

С прошлого релиза внесено 65 исправлений, добавили ещё несколько, заслуживающих упоминания:

  • 27.1.5 — исправлено падение при получении columnar-атрибутов float_vector.

  • 27.1.4 - исправлены ALTER TABLE ... RECONFIGURE и SHOW CREATE TABLE для односторонних обновлений с dict='keywords' на dict=keywords_32k.

  • 27.1.3 - обновлен Buddy до 4.0.1 и ужесточён контроль прав доступа к операциям изменения данных плагина Queue при аутентификации.

  • Запросы KNN по doc_id теперь корректно сохраняют offset и max_matches.

  • Исправлен порядок пересчёта KNN, поэтому явные разделители связейORDER BY снова работают.

  • Запросы в режиме гибридного поиска с GROUP BY на columnar-таблицах перестали вызывать сбои.

  • Исправлены сбои при репликации и повторном присоединении узла.

  • Поведение бинарного протокола MySQL было исправлено в версии 25.12.1, что важно для интеграций, где требуется реальная совместимость с клиентом.

  • Исправлена совместимость с массовой заливкой данных в Fluent Bit, предотвращающая повторную отправку успешных ответов в виде дублирующих вставок.

  • Исправили sql_attr_multi для plain таблиц, собранных из нескольких блоков source.

Полный список см. в changelog .


Нужна помощь или хотите связаться с нами?

  • Присоединяйтесь к нашему Slack

  • Заглядывайте на Forum

  • Сообщайте о проблемах или предлагайте функции на GitHub

  • Пишите письма на contact@manticoresearch.com