HeadlinesBriefing favicon HeadlinesBriefing.com

Manticore Search 新增向量分块功能

Hacker News •
×

假设你正在为团队的内部文档(指南、运行手册、事后复盘)构建搜索功能。你有一个带有自动嵌入的表:插入文本,Manticore 运行模型并自动填充向量列。你加载了一篇 4000 词的文档。插入成功,搜索也能工作。但模型的输入窗口只有 512 个 token,而该文档约有 5000 个 token。模型只读取了前 380 个词,其余 3600 个词被丢弃。

现在 Manticore 可在表定义中处理此问题:在 CREATE TABLE 中向向量列添加 chunk_strategy,Manticore 会将每个文档拆分为多个块,对每个块进行嵌入,并搜索所有块。提供五种策略:截断、平均、固定、递归、句子。文档仍作为单个搜索结果返回。各块单独竞争,Manticore 仅返回一次文档,knn_dist() 报告其与最近块的距离。k 统计的是文档数量,而非块数量。

在 Manticore 手册(189 页,约 29.8 万词)上测得:recall@5 从 55.1% 提升至 83.3%,MRR 从 0.44 提升至 0.70,内存占用约增加 2.5 倍,摄入时间约增加 4 倍。查询从不分块。查询足够短,可作为整体嵌入;仅存储的文档会被拆分。