Manticore Search 27.1.5 已发布。本次发布带来了内置认证和授权、分片表、对话式搜索、更快的 HNSW 构建、更好的 faceting 和聚合,以及涵盖 KNN、复制、协议兼容性和其他领域的一长串修复。
这篇文章是对 25.0.1 到 27.1.5 期间发布内容的汇总。
升级说明
升级前请先查看以下内容:
- 27.0.0 新增了内置 auth/authz,启用后会改变访问假设。 默认不会启用 auth,但一旦启用,匿名访问就不再可用。建议分阶段上线:先升级远程代理和复制对等节点,再升级查询或管理它们的主节点,等整个拓扑都处于新版本后再启用 auth。分布式远程代理和复制相关操作还要求参与的守护进程保存一致的 auth 数据。成功执行
JOIN CLUSTER会把加入节点本地的 auth 数据替换为捐赠集群的 auth 数据。(Issue #2833 , PR #3648 ) - 26.0.0 更改了复制存储布局。 新接收的复制表现在位于常规的
data_dir/<table>布局下,而不是集群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、分布式远程 agent 以及与复制相关的操作。这使访问控制成为产品的一等功能,而不再是必须始终在数据库外部处理的事情。
分片表
Manticore 现在可以创建和管理 sharded tables ,将插入分发到各个分片,并在一个地方处理更多相关生命周期。这让更大规模、写入密集的部署更易于运维,也减少了必须放在引擎外部的分片专用逻辑。
对话式搜索
这个版本为 Manticore Search 增加了 对话式搜索
。它通过 CREATE CHAT MODEL
和 CALL CHAT
暴露出来,因此你可以在已有的向量化表上直接提问,而不必围绕同一份数据再单独搭建一层检索。
在底层,Manticore Search 在 FLOAT_VECTOR 字段上运行 KNN,从该字段的 from='...' 源列构建 LLM 上下文,通过 conversation_uuid 保留会话历史,并返回答案以及支撑它的 sources。如果你已经把 embedding 存在 Manticore 中,这会让文档问答和客服式助手更容易搭建。
更快的向量构建和 KNN 改进
整个周期里,向量搜索一直在持续改进。
Manticore 提升了 KNN 性能,新增了本地 ONNX embeddings 支持,加快了 ONNX 推理,然后又通过多线程索引构建让 HNSW 构建和重建快了很多。
这项工作中的几个重要步骤:
- 25.1.0 改进了 KNN 距离计算和 AVX-512 加载。
- 25.2.0 在 MCL 中新增了本地 ONNX embeddings 支持,并进一步提升了向量搜索性能。
- 25.14.0 和 25.15.0 在所需库支持的基础上增加了多线程 HNSW 构建。
这里最大的实际改进,是自动嵌入速度大幅提升,以及大型向量表的构建和重建时间更短。初始 KNN 构建、chunk 合并以及 ALTER TABLE ... REBUILD KNN 都受到了影响。
更好的 faceting 和聚合
faceting 和聚合也变得更实用了。
facet_filter_mode
让构建类似电商的筛选更容易,它可以在激活过滤时保留已选、可用和不可用的分桶。
在分析侧:
date_histogram()新增了time_zone和offset- Opensearch dashboards support
- Manticore 新增了
percentiles、percentile_ranks和mad等统计聚合
其他值得注意的改进
这一发布线还包含了几项虽小但很有用的新增内容:
searchd --check会在启动前验证配置,且不会产生副作用。EXIT CLUSTER允许节点在不重启的情况下脱离复制集群。dict=keywords_32k使索引超长的机器生成 token 成为可能,例如哈希和消息 ID,而不会静默截断。- 内置乌克兰语词形还原器 扩展了对乌克兰语文本搜索的原生形态支持。
- Systemd
Type=notify改进了启动和关闭监管。 - 受 systemd 管理的
searchd进程现在会把日志写入systemdjournal JOIN查询现在支持显式的左表列前缀。- 支持 OpenSearch Dashboards。
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,并在 auth 下收紧了 Queue 插件的变更权限处理。
- 基于
doc_id的 KNN 查询现在会正确保留offset和max_matches。 - 修复了 KNN 重评分顺序,因此显式的
ORDER BY并列条件现在又能正常工作了。 - 在列式表上使用
GROUP BY的混合 fused 查询不再崩溃。 - 复制和节点重新加入相关的崩溃路径也得到了进一步清理。
- 25.12.1 修复了二进制 MySQL 协议行为,这对依赖真实客户端兼容性的集成很重要。
- 修复了 Fluent Bit 批量导入互操作性,避免成功响应被回放成重复插入。
- 27.1.2 修复了从多个
sourceblock 构建的普通索引中sql_attr_multi的处理。
完整列表请参见changelog 。
需要帮助或想联系我们?
- 加入我们的 Slack
- 访问 Forum
- 在 GitHub 上报告问题或提出功能建议
- 给我们发送邮件:
[email protected]

