# Manticore Search 25.0.0:混合搜索与 RT 表的重大更新
Manticore Search 25.0.0 引入了完整的混合搜索功能,可在一次调用中结合全文搜索和向量查询。打包方式已简化,新增 KNN 预过滤、RT 表的并行服务、预处理语句支持,以及兼容 S3 的存储备份。这些变更优化了高负载场景下搜索系统的部署和运维。
升级要求
升级前,请注意以下不兼容变更:
- 需要 MCL 13.0.0,并新增 API_URL 和 API_TIMEOUT 参数用于嵌入。
- 由于复制协议从 24.0.0 起变更,需一致性升级复制集群。
- 二元组分词变更(自 23.0.0 起)导致索引与旧版本不兼容。
- KNN 预过滤变更会影响结果排序:匹配过滤器的邻居现在优先于搜索过程。
简化打包
manticore 软件包现为 deb/rpm 的单一包:包含守护进程、工具、转换器、ICU 数据、Jieba 和语言包(de、en、ru)。升级方法:移除旧的 manticore* 包并安装新包——数据会保留。在基于 yum 的系统中,配置文件会自动备份。这消除了依赖冲突并简化了 DevOps 流程。
混合搜索
混合搜索将 MATCH() 和 KNN() 结合使用,支持 SQL 或 JSON。例如 SQL 查询:
SELECT * FROM table
WHERE MATCH('query')
AND KNN('vector_column', query_embedding, 10) > 0.8;
非常适合结合语义搜索和词汇精确度的场景:产品分类、多租户、RBAC 过滤。它通过单次查询降低延迟。
KNN 预过滤
属性过滤在向量搜索过程中应用,而非之后。对于“最近邻向量 + 类别=电子产品”之类查询,相关性得到提升,因为无关候选项会及早过滤。适用于电商、推荐系统以及带 ACL 的企业搜索。
RT 表优化
并行 N 元分块合并加速了高写入负载下的 OPTIMIZE 操作。与顺序合并不同,并发任务减少了压缩停机时间。RT 表现在可处理高插入流量,而不影响查询性能。
预处理语句
通过二进制协议的 prepare/execute 支持 MySQL 兼容的预处理语句。与连接池、ORM(SQLAlchemy、Hibernate)和框架无缝协作。简化了从 MySQL/PostgreSQL 迁移,而无需重构客户端代码。
PREPARE stmt FROM 'SELECT * FROM idx WHERE MATCH(?)';
EXECUTE stmt USING 'search query';
DEALLOCATE PREPARE stmt;
S3 备份
备份/恢复现支持 AWS S3、MinIO、Wasabi 和 Cloudflare R2。非常适合 Kubernetes/Docker 环境,其中本地磁盘为临时存储,但对象存储持久可靠。命令:backup --storage s3://bucket/path。
自动嵌入
MCL 13.0.0 新增 API_URL 和 API_TIMEOUT 支持。兼容 GGUF(量化)、T5-encoder、带限流的 HF,以及 RT 表中的嵌入复制。实现本地或云端管道的即时嵌入生成,而无需外部服务。
错误修复
本版本包含 36 项修复:
- max_query_time 超时期间无虚假 MATCH 触发。
- 复制不再因重复文档 ID 丢失行。
- 自动嵌入稳定性提升:UTF-8 处理、RT 锁。
- LEFT JOIN 现在返回正确的 MySQL NULL(而非字符串 'NULL')。
- 修复 RT 分块保存的竞争条件。
- 模糊搜索在多表查询中正常工作。
重点关注:
- 混合搜索将语义应用的代码复杂度降低 30–50%。
- KNN 预过滤提升过滤负载下的精确度。
- 单一包简化 CI/CD 流水线。
- S3 备份实现云端 RPO/RTO <1h。
- 预处理语句加速与 MySQL 生态集成。
详细变更日志见仓库。25.0.0 版本使 Manticore 完全生产就绪,支持大规模混合搜索。
— Editorial Team
暂无评论。