Weaviate v1.37 发布:内置 MCP 服务器、可扩展分词器、多样性搜索与查询分析预览
Weaviate v1.37 正式发布,带来多项预览功能:内置 MCP 服务器(与 AI 代理和 IDE 原生集成)、可扩展分词器(支持变音折叠与自定义停用词)、基于最大边际相关性(MMR)的多样性搜索、查询分析(按分片显示耗时)。此外还新增增量备份、Gemini 音频支持(multi2vec-google 模块)和 BlobHash 属性类型。
Weaviate v1.37 现已开源发布,并可在 Weaviate Cloud 上使用。本次更新专注于扩展 Weaviate 的能力,涵盖与 AI 代理的交互、文本分析以及大规模操作的处理。四个新的预览功能加入此版本:内置的 MCP 服务器,让 LLM 和 IDE 能够原生地与数据库通信;可扩展分词器,支持变音折叠和自定义停用词预设;多样性搜索(MMR),减少向量结果的冗余;以及查询分析,提供按分片的耗时分解。此外,增量备份使得大规模集合的备份变得实用;Gemini 音频支持加入 multi2vec-google 模块;新的 BlobHash 属性类型只存储哈希而非完整 blob。
MCP 服务器(预览)
Weaviate v1.37 引入了内置的模型上下文协议(MCP)服务器,作为预览提供。MCP 是一个开放标准,允许大型语言模型和 AI 代理安全地与外部系统交互。通过在 Weaviate 中直接实现它,你可以将数据库连接到兼容的客户端——包括 Claude Code、Claude Desktop、Cursor、VS Code 以及其他任何支持 MCP 的工具——而无需编写任何胶水代码。这使 Weaviate 从被动的检索引擎转变为代理工作流的主动长期记忆:LLM 可以检查集合模式、运行混合搜索并将数据写回你的实例,所有这些都受 Weaviate 标准认证和授权的约束。该服务器作为流式 HTTP 端点实现,位于 REST API 相同端口的 /v1/mcp 上。默认情况下禁用,通过单个环境变量启用。启用后,服务器暴露四个工具:检查集合模式、列出多租户集合的租户、运行混合搜索以及插入或更新对象。如果使用 RBAC,MCP 访问由三个新权限控制。你可以通过挂载 YAML 或 JSON 配置文件来自定义 LLM 看到的工具描述。
可扩展分词器(预览)
关键词搜索质量在 BM25 运行计算之前就已决定——由将文本转换为标记的分析器决定。新增三个功能:变音折叠(textAnalyzer.asciiFold 标志将带变音符号的拉丁字符规范化为 ASCII 等效字符,索引和查询时均适用)、自定义和按属性停用词(可声明命名的停用词预设并分配给不同属性,适用于多语言集合),以及 tokenize 端点(两个新的 REST 端点使分词过程透明,返回包括索引标记和查询标记的结构化响应)。
基于 MMR 的多样性搜索(预览)
标准向量搜索的一个已知副作用是它聚集了近重复项。Weaviate v1.37 引入了最大边际相关性(MMR)作为一个新的查询时重新排序步骤,作为预览提供。MMR 迭代地选择最相关的项目,然后惩罚与已选择项目过于相似的候选者——因此每个新结果必须通过添加新内容来赢得其位置。通过在 Python 客户端中添加 selection 参数来使用。MMR 在查询时应用,在现有向量索引之上进行,无需重新索引或模式更改。
查询分析(预览)
当查询缓慢时,第一个问题总是“时间花在哪里了?” Weaviate v1.37 通过查询分析轻松回答这个问题——作为预览提供,它将按分片的耗时分解附加到任何搜索请求上。通过设置 query_profile=True 来请求分析数据。分析按分片和搜索类型(向量、关键词、对象)结构化,包含如 vector_search_took、filters_ids_matched、knn_search_layer_N_took 等指标。对于混合搜索,每个分片同时包含向量和关键词部分。对于多节点集群,协调器汇总所有分片的计时,每个条目包括执行它的节点,从而容易发现性能不平衡。
增量备份
每晚备份 100GB 的集合成本高昂,当只有少量数据发生变化时。Weaviate v1.37 引入了增量备份:自上次备份以来未更改的文件作为引用存储,而不是再次复制。结果是备份体积大幅减小,备份时间显著加快。备份运行时,Weaviate 将大文件分割成块。在增量备份期间,每个块与基础备份进行比较——如果未更改,则存储指针而非文件。恢复时,Weaviate 自动遍历链并从较早的备份中拉取引用的文件。创建增量备份需要先有一个完整备份作为基础。你还可以链式创建增量备份,每个引用前一个,以廉价地构建较长的历史记录。恢复增量备份与恢复完整备份完全相同——Weaviate 解析链并根据需要从较早备份中获取文件。请注意,基础备份(以及链中的任何中间增量备份)必须保持可用,只要你需要从依赖它们的增量备份中恢复。另外,在 v1.37 中,INACTIVE(COLD)租户现在也包含在备份中,直接从磁盘读取而无需激活。
Gemini 音频支持
multi2vec-google 模块现在支持音频作为第四种模态,除了文本、图像和视频。通过新的 audioFields 设置配置音频属性,与 imageFields 或 videoFields 相同。音频支持仅通过 Gemini API(Google AI Studio)可用——Vertex AI 目前不支持音频嵌入。这使得 Gemini API 路径对于任何需要将文本、视觉和音频内容统一到单个向量空间的多模态用例具有吸引力。
BlobHash 属性类型
如果你使用像 multi2vec-google 这样的模块来向量化媒体,向量化器在导入时只需要原始字节——之后,blob 就只是占用存储空间。v1.37 中的新 blobHash 数据类型直接解决了这个问题:它接受 base64 编码的输入(像 blob 一样),但在磁盘上仅持久保存 SHA-256 哈希。原始的 base64 数据仍然流经向量化管道,因此模块可以嵌入实际的媒体内容。仅在向量化之后,Weaviate 才用其哈希替换负载。在后续更新中,传入数据被哈希并与存储的哈希比较,以决定是否需要重新向量化。这非常适合那些你希望向量存在于 Weaviate 中但规范媒体存在于对象存储(如 S3)中的工作流——哈希让你能够关联回原始文件,而无需支付重复存储的磁盘成本。
多项性能改进与修复
Weaviate v1.37 还包含许多较小的功能和改进。亮点包括:集合导出(预览):新的 /v1/export API 允许将集合导出到 S3、GCS、Azure 或本地文件系统,格式为 Apache Parquet;HFresh 改进:多项优化减少了内存使用、磁盘写入并改进了备份期间的出队;DEFAULT_SHARDING_COUNT 环境变量:覆盖新单租户集合的默认 desiredCount;S3 assume role 用于备份:备份-s3 模块现在支持 AWS assume role 身份验证;Google AI Studio 在 multi2vec-google 中:Google AI Studio API 密钥现在可与 multi2vec-google 模块一起使用;IPv6 集群:Weaviate 现在支持用于内部集群通信的 IPv6 地址;内部集群 gRPC:副本通信从 REST 迁移到 gRPC,改进了连接管理和摘要响应的二进制编码;Reranker-cohere v2:Cohere 重排序模块从 v1 升级到 v2 重排序端点;OIDC 不安全 TLS 跳过:新的 AUTHENTICATION_OIDC_INSECURE_SKIP_TLS_VERIFY 环境变量用于开发和测试环境中的自签名或不受信任证书的 OIDC 颁发者;性能:HNSW 稀疏访问列表、预计算平均属性长度、延迟量化直到缓存预填充、备份期间的非阻塞压缩、更好的段搜索位图处理等;错误修复:最终一致性改进、RBAC 恢复竞争条件、向量索引错误处理、IPv6 地址解析、过滤器边缘情况等。
社区贡献
Weaviate 是一个开源项目,我们总是很高兴看到来自社区的贡献。本次发布特别感谢首次贡献者 @junjieqi,他为集群贡献了 IPv6 支持。
总结
Weaviate v1.37 拓宽了你的数据与堆栈其余部分的集成方式——从 AI 代理和 IDE 到分析管道和多语言工作负载。关键亮点包括 MCP 服务器、可扩展分词器、MMR 多样性搜索、查询分析、增量备份、Gemini 音频支持和 BlobHash 属性类型。此版本现已开源,并可在 Weaviate Cloud 上用于新的 Sandbox。