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

Manticore Search 27.1.5 добавляет встроенную аутентификацию и авторизацию, вводит шардинг таблиц, добавляет разговорный поиск, ускоряет векторный поиск, улучшает фасетирование и агрегации, а также включает 65 исправлений с версии 25.0.0.

[Manticore Search 27.1.5](/install/) выпущен. Этот релиз приносит встроенные аутентификацию и авторизацию, шардированные таблицы, 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](https://github.com/manticoresoftware/manticoresearch/issues/2833), [PR #3648](https://github.com/manticoresoftware/manticoresearch/pull/3648))
- **В 26.0.0 изменена схема хранения репликации.** Входящие реплицируемые таблицы теперь хранятся в обычной структуре [`data_dir/<table>`](https://manual.manticoresearch.com/Server_settings/Searchd#data_dir) вместо cluster `path`. Если вы используете кластеры репликации с пользовательским `path`, после обновления может потребоваться переместить или заново синхронизировать реплицируемые таблицы. Откат безопасен только до того, как новая схема будет принята. ([Issue #4431](https://github.com/manticoresoftware/manticoresearch/issues/4431), [PR #4598](https://github.com/manticoresoftware/manticoresearch/pull/4598))
- **Если вы управляете MCL отдельно от демона, обновляйте его вместе с Manticore.** Эта линейка релизов прошла через несколько обновлений [MCL](https://github.com/manticoresoftware/columnar): от работ по производительности векторного поиска до многопоточной сборки HNSW и последующих исправлений стабильности. Смешивать старую библиотеку с новым демоном не рекомендуется. ([25.2.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/25.2.0), [25.15.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/25.15.0), [26.0.3](https://github.com/manticoresoftware/manticoresearch/releases/tag/26.0.3), [26.3.2](https://github.com/manticoresoftware/manticoresearch/releases/tag/26.3.2), [27.1.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/27.1.0))

---

## Основные моменты

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

Теперь Manticore поддерживает [пользователей, пароли, bearer tokens и детальные права доступа](https://manual.manticoresearch.com/Security/Authentication_and_authorization) для MySQL, HTTP/HTTPS, удалённых агентов в распределённой конфигурации и операций, связанных с репликацией. Это делает контроль доступа полноценной частью продукта, а не чем-то, что всегда приходится реализовывать вне базы данных.

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

Теперь Manticore может создавать и управлять [шардированными таблицами](https://manual.manticoresearch.com/Creating_a_table/Creating_a_sharded_table/Creating_a_sharded_table), распределять вставки по шардам и централизованно обрабатывать больше сопутствующего жизненного цикла. Это упрощает эксплуатацию крупных write-heavy развертываний и сокращает объём sharding-специфичной логики, которую приходится держать вне движка.

### Разговорный поиск

В этом выпуске в Manticore Search добавлен [разговорный поиск](https://manual.manticoresearch.com/Searching/Conversational_search). Он доступен через [`CREATE CHAT MODEL`](https://manual.manticoresearch.com/Searching/Conversational_search) и [`CALL CHAT`](https://manual.manticoresearch.com/Searching/Conversational_search), так что можно задавать вопросы к уже векторизованной таблице вместо того, чтобы строить отдельный 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](https://github.com/manticoresoftware/manticoresearch/releases/tag/25.1.0) улучшил вычисление расстояний KNN и загрузку AVX-512.
- [25.2.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/25.2.0) добавил поддержку локальных ONNX embeddings в MCL и еще больше улучшил производительность векторного поиска.
- [25.14.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/25.14.0) и [25.15.0](https://github.com/manticoresoftware/manticoresearch/releases/tag/25.15.0) добавили многопоточную сборку HNSW вместе с необходимой поддержкой библиотеки.

Самое заметное практическое улучшение здесь — гораздо более быстрое auto-embedding и меньшее время сборки и пересборки для больших векторных таблиц. Это влияет на начальную сборку KNN, слияние чанков и `ALTER TABLE ... REBUILD KNN`.

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

Фасетирование и агрегации тоже стали полезнее.

[`facet_filter_mode`](https://manual.manticoresearch.com/Searching/Faceted_search) упрощает построение e-commerce-фильтров, которые сохраняют выбранные, доступные и недоступные корзины при активной фильтрации.

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

- [`date_histogram()`](https://manual.manticoresearch.com/Functions/Date_and_time_functions#DATE_HISTOGRAM%28%29) получил `time_zone` и `offset`
- Поддержка Opensearch dashboards
- Manticore добавил статистические агрегации, такие как `percentiles`, `percentile_ranks` и `mad`

---

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

Эта линейка релизов также включает несколько меньших, но полезных дополнений:

- [`searchd --check`](https://manual.manticoresearch.com/Starting_the_server/Manually#searchd-command-line-options) проверяет конфигурацию перед запуском без побочных эффектов.
- [`EXIT CLUSTER`](https://manual.manticoresearch.com/Creating_a_cluster/Setting_up_replication/Managing_replication_nodes#EXIT-CLUSTER) позволяет узлу выйти из кластера репликации без перезапуска.
- [`dict=keywords_32k`](https://manual.manticoresearch.com/Creating_a_table/NLP_and_tokenization/Low-level_tokenization#dict) позволяет индексировать очень длинные машинно сгенерированные токены, такие как хэши и ID сообщений, без тихого усечения.
- [встроенный украинский лемматизатор](https://manual.manticoresearch.com/Creating_a_table/NLP_and_tokenization/Morphology#morphology) расширяет нативную поддержку морфологии для поиска по украинским текстам.
- [Systemd `Type=notify`](https://github.com/manticoresoftware/manticoresearch/releases/tag/25.4.0) улучшает контроль запуска и завершения.
- Процесс `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](https://manual.manticoresearch.com/Changelog).

---

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

- Присоединяйтесь к нашему [Slack](https://slack.manticoresearch.com)
- Загляните на [Forum](https://forum.manticoresearch.com)
- Сообщайте о проблемах или предлагайте функции на [GitHub](https://github.com/manticoresoftware/manticoresearch/issues)
- Пишите нам на `contact@manticoresearch.com`
