⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.
blog-post

Manticore Search 27.1.5: аутентификация, шардинг таблиц, поисковый диалог и более быстрый векторный поиск

author image

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> вместо cluster path. Если вы используете кластеры репликации с пользовательским 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]

Установить Manticore Search

Установить Manticore Search