Manticore Search 27.1.5 выпущен. Этот релиз приносит встроенные аутентификацию и авторизацию, шардированные таблицы, conversational search, более быструю сборку HNSW, улучшенные фасетирование и агрегации, а также длинный список исправлений в KNN, репликации, совместимости протоколов и других областях.
Этот пост - сводка всего, что вышло с 25.0.1 по 27.1.5.
Заметки по обновлению
Пожалуйста, изучите это перед обновлением:
- В 27.0.0 добавлены встроенные auth/authz, и их включение меняет допущения о доступе. Auth не включена по умолчанию, но после включения анонимный доступ перестает работать. Включайте ее поэтапно: сначала обновите удаленные агенты и узлы репликации, затем - мастера, которые к ним обращаются или ими управляют, и только после того, как вся топология переведена на новую версию, включайте auth. Для распределенных операций с remote-agent и репликацией также требуется совпадающий сохраненный auth data на всех участвующих демонах. Успешный
JOIN CLUSTERзаменяет локальные auth data присоединяющегося узла данными кластера-донора. (Issue #2833 , PR #3648 ) - В 26.0.0 изменена схема хранения репликации. Входящие реплицируемые таблицы теперь хранятся в обычной структуре
data_dir/<table>вместо clusterpath. Если вы используете кластеры репликации с пользовательскимpath, после обновления может потребоваться переместить или заново синхронизировать реплицируемые таблицы. Откат безопасен только до того, как новая схема будет принята. (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 может создавать и управлять шардированными таблицами , распределять вставки по шардам и централизованно обрабатывать больше сопутствующего жизненного цикла. Это упрощает эксплуатацию крупных write-heavy развертываний и сокращает объём sharding-специфичной логики, которую приходится держать вне движка.
Разговорный поиск
В этом выпуске в Manticore Search добавлен разговорный поиск
. Он доступен через CREATE CHAT MODEL
и CALL CHAT
, так что можно задавать вопросы к уже векторизованной таблице вместо того, чтобы строить отдельный retrieval-слой поверх тех же данных.
Под капотом Manticore Search запускает KNN по полю FLOAT_VECTOR, строит контекст LLM из столбцов источника этого поля from='...', хранит историю диалога по conversation_uuid и возвращает и ответ, и поддерживающие его sources. Если вы уже храните embeddings в Manticore, это сильно упрощает внедрение документных Q&A и ассистентов в стиле поддержки.
Более быстрая сборка векторов и улучшения KNN
Векторный поиск продолжал улучшаться на всем протяжении этого цикла.
Manticore улучшил производительность KNN, добавил поддержку локальных ONNX embeddings, ускорил инференс ONNX, а затем сделал сборку и пересборку HNSW намного быстрее благодаря многопоточному построению индекса.
Несколько важных шагов в этой работе:
- 25.1.0 улучшил вычисление расстояний KNN и загрузку AVX-512.
- 25.2.0 добавил поддержку локальных ONNX embeddings в MCL и еще больше улучшил производительность векторного поиска.
- 25.14.0 и 25.15.0 добавили многопоточную сборку HNSW вместе с необходимой поддержкой библиотеки.
Самое заметное практическое улучшение здесь — гораздо более быстрое auto-embedding и меньшее время сборки и пересборки для больших векторных таблиц. Это влияет на начальную сборку KNN, слияние чанков и ALTER TABLE ... REBUILD KNN.
Улучшенные фасетирование и агрегации
Фасетирование и агрегации тоже стали полезнее.
facet_filter_mode
упрощает построение e-commerce-фильтров, которые сохраняют выбранные, доступные и недоступные корзины при активной фильтрации.
На стороне аналитики:
date_histogram()получилtime_zoneиoffset- Поддержка Opensearch dashboards
- Manticore добавил статистические агрегации, такие как
percentiles,percentile_ranksиmad
Другие заметные улучшения
Эта линейка релизов также включает несколько меньших, но полезных дополнений:
searchd --checkпроверяет конфигурацию перед запуском без побочных эффектов.EXIT CLUSTERпозволяет узлу выйти из кластера репликации без перезапуска.dict=keywords_32kпозволяет индексировать очень длинные машинно сгенерированные токены, такие как хэши и ID сообщений, без тихого усечения.- встроенный украинский лемматизатор расширяет нативную поддержку морфологии для поиска по украинским текстам.
- Systemd
Type=notifyулучшает контроль запуска и завершения. - Процесс
searchdпод управлением systemd теперь пишет в журналsystemd - Запросы
JOINтеперь поддерживают явные префиксы столбцов левой таблицы. - Поддержка OpenSearch Dashboards.
manticore-loadполучил поддержку нескольких запросов.
Исправления ошибок
Эта линейка релизов также включает 65 исправлений, перечисленных в changelog. В последних последующих релизах добавили еще несколько, заслуживающих упоминания:
- 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-плагина под auth.
- Запросы KNN по
doc_idтеперь корректно сохраняютoffsetиmax_matches. - Порядок rescoring в KNN был исправлен, так что явные тай-брейки
ORDER BYснова работают. - Гибридные fused-запросы с
GROUP BYна columnar-таблицах перестали падать. - Пути падения при репликации и повторном присоединении узла были дополнительно исправлены.
- Поведение бинарного MySQL-протокола было исправлено в 25.12.1, что важно для интеграций, ожидающих настоящую совместимость клиента.
- Совместимость с массовой загрузкой Fluent Bit была исправлена, чтобы успешные ответы не воспроизводились как дублирующие вставки.
- 27.1.2 исправил обработку
sql_attr_multiдля обычных индексов, собранных из нескольких блоковsource.
Полный список см. в changelog .
Нужна помощь или хотите связаться с нами?
- Присоединяйтесь к нашему Slack
- Загляните на Forum
- Сообщайте о проблемах или предлагайте функции на GitHub
- Пишите нам на
[email protected]

