Manticore Search 27.1.5 发布:增强认证分片及更快向量搜索
原标题:Manticore Search 27.1.5: Auth, sharding, conversational and faster vector search
速览
Manticore Search 发布了 27.1.5 版本,此次更新引入了身份认证和分片功能,提升了系统的安全性与扩展性。新版本还优化了对话式搜索体验,并显著加快了向量搜索的速度,有助于提升 AI 应用中的数据检索效率。
AI 深度解读
Manticore Search 27.1.5 深度解读:原生认证、分片架构与对话式搜索的里程碑式更新
背景
Manticore Search 近期发布了 27.1.5 版本,这是一次涵盖从 25.0.1 至 27.1.5 多个小版本的综合性更新汇总。此次发布不仅修复了 KNN(K-近邻)、复制协议兼容性等方面的众多问题,更引入了多项企业级核心功能。
对于长期关注 Manticore 的技术团队而言,这次更新标志着该产品从“高性能搜索引擎”向“全功能数据平台”的进一步演进。特别是内置的身份验证与授权机制、原生分片表支持以及对话式搜索能力的加入,极大地降低了构建复杂搜索架构的外部依赖。然而,由于涉及底层存储布局变更和权限模型的彻底改变,升级过程需要谨慎规划,特别是对于已部署大规模集群的用户。
核心内容
本次更新主要围绕以下五大核心领域展开,详细解读如下:
1. 内置身份验证与授权(Built-in Authentication and Authorization)
这是 27.0.0 版本引入的最具颠覆性的功能。Manticore 现在原生支持用户、密码、Bearer Token 以及细粒度的权限控制。
- 覆盖范围:支持 MySQL 协议、HTTP/HTTPS 接口、分布式远程代理(Remote Agents)以及复制相关操作。
- 默认状态:出于兼容性考虑,认证功能默认未启用。
- 启用后果:一旦启用,匿名访问将不再被允许。这意味着所有客户端连接都必须提供有效的凭据。
- 升级策略建议:
- 由于权限模型的改变会影响现有拓扑结构,建议分阶段 rollout。
- 首先升级远程代理和复制对等节点(Peers)。
- 然后升级查询或管理这些节点的 Master 节点。
- 最后,在整个拓扑都运行在新版本后,再启用认证功能。
- 分布式远程代理和复制操作需要参与守护进程之间拥有匹配的存储认证数据。
- 执行
JOIN CLUSTER时,加入节点的本地认证数据将被捐赠集群的认证数据替换。
2. 原生分片表支持(Sharded Tables)
Manticore 现在可以直接创建和管理分片表,将插入操作分发到各个分片,并在引擎内部处理更多生命周期管理逻辑。
- 优势:简化了写入密集型部署的运维复杂度,减少了必须在外围构建的分片逻辑代码量。
- 适用场景:适合需要处理大规模写入负载且希望简化架构复杂度的用户。
3. 对话式搜索(Conversational Search)
Manticore 引入了对话式搜索功能,通过 CREATE CHAT MODEL 和 CALL CHAT 命令暴露接口。
- 工作原理:
- 在
FLOAT_VECTOR字段上运行 KNN 搜索。 - 从指定源列(
from='...')构建 LLM(大语言模型)上下文。 - 通过
conversation_uuid保持对话历史。 - 返回答案以及支持该答案的来源文档(Sources)。
- 在
- 价值:如果用户已经在 Manticore 中存储了 Embeddings,这一功能使得构建文档问答系统和客服助手变得极其简单,无需额外构建复杂的检索层。
4. 向量搜索性能大幅提升
向量搜索性能在本周期内经历了显著优化,主要体现在 KNN 性能提升、本地 ONNX 嵌入支持以及多线程 HNSW 构建。
- 演进历程:
- 25.1.0:改进了 KNN 距离计算和 AVX-512 加载。
- 25.2.0:在 MCL(Manticore Client Library)中增加了本地 ONNX 嵌入支持,并进一步提升了向量搜索性能。
- 25.14.0 / 25.15.0:引入了多线程 HNSW 构建及其所需的库支持。
- 实际收益:
- 大幅缩短了大型向量表的自动嵌入、初始构建、Chunk 合并以及
ALTER TABLE ... REBUILD KNN的时间。 - 通过多线程加速索引构建和重建过程。
- 大幅缩短了大型向量表的自动嵌入、初始构建、Chunk 合并以及
5. 分面搜索与聚合功能增强
- Facet 过滤模式:新增
facet_filter_mode,使得构建电商风格的过滤器更加容易,能够在活动过滤下保留已选、可用和不可用的桶(Buckets)。 - 分析功能增强:
date_histogram()函数增加了time_zone和offset参数。- 增加了统计聚合功能,如
percentiles(百分位)、percentile_ranks(百分位排名)和mad(平均绝对偏差)。
- OpenSearch Dashboards 支持:Manticore 现在支持 OpenSearch Dashboards,提升了可视化分析的兼容性。
其他值得注意的改进
- 配置检查:
searchd --check可在启动前验证配置,且无副作用。 - 集群管理:
EXIT CLUSTER允许节点在不重启的情况下在线离开复制集群。 - 长 Token 索引:
dict=keywords_32k使得索引非常长的机器生成 Token(如哈希值、消息 ID)成为可能,避免了静默截断。 - 语言支持:内置的乌克兰语词形还原器(Lemmatizer)扩展了对乌克兰语文本搜索的原生形态学支持。
- Systemd 集成:改进
Type=notify,使searchd进程在 Systemd 管理下能更好地记录到 Systemd Journal。 - SQL 兼容性:
JOIN查询现在支持显式的左表列前缀。 - 工具增强:
manticore-load获得了多查询支持。
关键 Bug 修复
本版本系列包含 65 个列出的修复,近期版本还修复了以下关键问题:
- 27.1.5:修复了获取列式
float_vector属性时的崩溃问题。 - 27.1.4:修复了从
dict='keywords'单向升级到dict=keywords_32k时的ALTER TABLE ... RECONFIGURE和SHOW CREATE TABLE问题。 - 27.1.3:将 Buddy 更新到 4.0.1,并收紧了认证下的 Queue 插件变异权限处理。
- KNN 查询:修复了
KNN-by-doc_id查询中offset和max_matches保留不正确的问题;修复了 KNN 重排序顺序,使显式ORDER BY平局打破器重新生效。 - 混合查询:修复了列式表上带有
GROUP BY的混合融合查询导致的崩溃。 - 复制稳定性:进一步清理了复制和节点重新加入时的崩溃路径。
- 协议兼容性:25.12.1 修复了二进制 MySQL 协议行为,这对期望真实客户端兼容性的集成至关重要。
- Fluent Bit 集成:修复了 Fluent Bit 批量摄入的互操作性问题,防止成功响应被重放为重复插入。
- 27.1.2:修复了从多个
source块构建的普通索引中sql_attr_multi的处理问题。
关键要点
- 安全架构转变:Manticore 27.0.0+ 引入了原生 Auth/Authz,启用后匿名访问失效。升级必须遵循“先代理/副本,后主节点,最后启用认证”的分阶段策略,以避免集群连接中断。
- 存储布局变更风险:26.0.0 版本改变了复制存储布局(从
clusterpath变为标准的data_dir/<table>)。使用自定义路径运行复制集群的用户,升级后可能需要手动移动或重新同步数据
查看原文 →manticoresearch.com
