Manticore Search 27.1.5: 身份验证、分片、对话式搜索与更快的向量搜索
摘要
Manticore Search 27.1.5 引入了内置身份验证、分片表、对话式搜索以及更快的 HNSW 向量搜索,同时修复并改进了复制、KNN 等多个方面。
暂无内容
查看缓存全文
缓存时间: 2026/06/22 13:33
# Manticore Search 27.1.5:身份认证、分片表、对话式搜索以及更快的向量搜索
来源:https://manticoresearch.com/blog/manticore-search-27-1-5/
Manticore Search 27.1.5 (https://manticoresearch.com/install/) 已发布。此版本带来了内置的身份认证与授权、分片表、对话式搜索、更快的 HNSW 构建、改进的分面与聚合功能,以及涵盖 KNN、复制、协议兼容性等多个领域的大量修复。本文汇总了从 **25.0.1 到 27.1.5** 的所有更新内容。
---
## 升级注意事项
升级前请务必阅读以下内容:
- **27.0.0 新增了内置的身份认证/授权,启用后会改变访问方式。** 认证功能默认不启用,但一旦启用,匿名访问将不再生效。请分阶段部署:先升级远程 agent 和复制对等节点,然后升级查询或管理这些节点的主节点,并仅在整个拓扑结构都升级到新版本后才启用认证。分布式远程 agent 和相关复制操作也需要在相关守护进程间保持一致的认证数据。成功执行 `JOIN CLUSTER` 后,加入节点的本地认证数据将被捐赠集群的认证数据替换。(问题 #2833 (https://github.com/manticoresoftware/manticoresearch/issues/2833),PR #3648 (https://github.com/manticoresoftware/manticoresearch/pull/3648))
- **26.0.0 更改了复制的存储布局。** 现在,接收到的复制表位于标准 `data_dir/` (https://manual.manticoresearch.com/Server_settings/Searchd#data_dir) 布局下,而不是集群 `path` 下。如果您使用自定义 `path` 运行复制集群,则升级后可能需要移动或重新同步复制表。只有在尚未采用新布局之前,降级才是安全的。(问题 #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 令牌以及细粒度权限 (https://manual.manticoresearch.com/Security/Authentication_and_authorization),适用于 MySQL、HTTP/HTTPS、分布式远程 agent 以及复制相关操作。这使得访问控制成为产品的一等公民,而无需始终在数据库外部进行处理。
### 分片表
Manticore 现在可以创建和管理分片表 (https://manual.manticoresearch.com/Creating_a_table/Creating_a_sharded_table/Creating_a_sharded_table),将插入操作分发到各个分片,并在一个地方处理更多相关的生命周期管理。这使得大规模的写入密集型部署更易于运维,并减少了需要在引擎外部实现的分片逻辑。
### 对话式搜索
此版本为 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) 暴露出来,因此您可以直接对现有的向量化表提问,而无需围绕同一份数据构建单独的检索层。在底层,Manticore Search 对 `FLOAT_VECTOR` 字段运行 KNN,从该字段的 `from='...'` 源列构建 LLM 上下文,通过 `conversation_uuid` 保留对话历史,并同时返回答案和支持的 `sources`。如果您已经在 Manticore 中保存了嵌入向量,这将极大地简化文档问答和支持类助手的搭建。
### 更快的向量构建与 KNN 改进
向量搜索在整个版本周期中持续改进。Manticore 提升了 KNN 性能,增加了本地 ONNX 嵌入支持,加快了 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) 在 MCL 中增加了本地 ONNX 嵌入支持,并进一步提升了向量搜索性能。
- 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 构建及其所需的库支持。
这里最大的实际改进是自动嵌入更快,以及大型向量表的构建和重建时间显著缩短。初始 KNN 构建、块合并以及 `ALTER TABLE ... REBUILD KNN` 均受影响。
### 更好的分面与聚合功能
分面与聚合功能也变得更加实用。`facet_filter_mode` (https://manual.manticoresearch.com/Searching/Faceted_search) 使得构建电商风格过滤器更加容易,可以在活动过滤条件下保留已选中、可用和不可用的分桶。在分析方面:
- `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) 改进了启动和关闭的监控。
- 在 systemd 管理下的 `searchd` 进程现在会将日志记录到 `systemd` journal
- `JOIN` 查询现在支持显式的左表列前缀。
- 支持 OpenSearch Dashboards。
- `manticore-load` 增加了多查询支持。
---
## 问题修复
此版本系列还包含了 **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 插件变更权限的处理。
- 按 `doc_id` 的 KNN 查询现在能正确保留 `offset` 和 `max_matches`。
- 修复了 KNN 重排序的顺序,显式 `ORDER BY` 的平局决胜机制再次生效。
- 在列式表上使用 `GROUP BY` 的混合融合查询不再崩溃。
- 进一步清理了复制和节点重新加入时的崩溃路径。
- 25.12.1 修复了二进制 MySQL 协议的行为,这对于期望真正客户端兼容性的集成非常重要。
- 修复了 Fluent Bit 批量导入的互操作性问题,防止成功响应被重放为重复插入。
- 27.1.2 修复了从多个 `source` 块构建普通索引时的 `sql_attr_multi` 处理问题。
完整列表请参阅 变更日志 (https://manual.manticoresearch.com/Changelog)。
---
## 需要帮助或想要联系?
- 加入我们的 Slack (https://slack.manticoresearch.com/)
- 访问 论坛 (https://forum.manticoresearch.com/)
- 在 GitHub (https://github.com/manticoresoftware/manticoresearch/issues) 上报告问题或建议功能
- 发送邮件至 `[email protected]`
相似文章
Manticore Search中的KNN提前终止
Manticore Search引入了针对基于HNSW的KNN向量搜索的提前终止机制,对于较大的k值,可减少多达80%的距离计算,同时保持精度在全搜索的2-4%以内。
Shard - 实现10倍KV缓存压缩
Shard是一个即插即用的HuggingFace缓存,通过使用PCA加int4量化处理K(键),以及Hadamard旋转加向量量化处理V(值),为Llama-3.1-8B实现了10倍的KV缓存压缩,且在基准测试中无精度损失。
Witchcraft:基于SQLite的快速本地语义搜索 [P]
Witchcraft 是一个用 Rust 对斯坦福大学 XTR-Warp 语义搜索引擎进行的开源重新实现,使用 SQLite 实现快速本地搜索。它包含 Pickbrain CLI,用于索引代码会话记录,并为 AI 代理配备全局记忆。
@Marco_Ramilli: PageIndex 32,751 星 放弃向量数据库,停止分块。构建基于推理的 RAG,实现上下文感知、类人的……
PageIndex 是一个开源的、基于推理的 RAG 系统,它用层级树索引和 LLM 驱动的检索取代了向量数据库和分块,用于上下文感知、类人的文档理解。
alibaba/zvec
阿里巴巴发布 Zvec v0.5.0,一个开源的内存向量数据库,新增功能包括全文搜索、混合检索、DiskANN 索引、以及 Go 和 Rust 的新 SDK,同时附带可视化工具。