Weaviate 1.38 Release

TL;DR · AI 摘要
Weaviate 1.38版本发布,HFresh向量索引和MCP服务器达一般可用性,提升百亿级数据处理和LLM集成能力。
核心要点
- HFresh向量索引支持百亿级数据处理,内存占用低,适合流式工作负载。
- MCP服务器提供无胶水代码的LLM和AI代理集成,使用Streamable HTTP端点。
- 异步复制默认启用,提升集群复制效率。
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Weaviate 1.38版本更新
- HFresh向量索引
- 磁盘分组机制
- 内存HNSW索引
- MCP服务器
- Streamable HTTP端点
- RBAC权限支持
- 异步复制
- 集群范围运行
- 默认启用
金句 / Highlights
值得收藏与分享的关键句。
HFresh通过分组向量到磁盘区域并维护内存HNSW索引,实现低内存和可预测延迟。
MCP服务器提供/v1/mcp端点,支持LLM直接操作Weaviate数据,无需额外代码。
异步复制重构后集群范围运行,默认启用提升所有复制集合的效率。
Weaviate 1.38 版本发布 | Weaviate
Weaviate 1.38 版本发布
2026年6月25日
·
1分钟阅读
Ivan Despot
开发者体验工程师
Weaviate v1.38 现已开源并发布在 Weaviate Cloud 上。
本次发布有两个功能达到通用可用状态:基于磁盘的 HFresh 向量索引和内置的 MCP 服务器。异步复制功能已重构为通过单个调度器在集群范围内运行,现在默认在每个复制集合中启用。新增两个预览功能:用于查询时重新评分的 Boost API 和嵌套对象过滤功能。
以下是本次发布的主要亮点:
- HFresh 向量索引 - 通用可用
- MCP 服务器 - 通用可用
- 集群范围的异步复制
- Boost API(预览)
- 嵌套对象过滤(预览)
- 性能优化与修复
- 社区贡献
- 总结
HFresh 向量索引 - 通用可用
我们在 v1.36 版本中作为技术预览引入的基于磁盘的 HFresh 向量索引,现已正式发布。该索引灵感来源于 SPFresh 算法:与 HNSW 保持所有向量在内存中的方式不同,HFresh 将向量分组到称为 postings 的磁盘区域中,并通过内存中的小型 HNSW 索引对这些区域的中心点进行管理,以决定需要读取哪些区域。随着集合规模达到数十亿级,内存占用保持较低且延迟可预测,这使其非常适合需要持续更新数据的流式工作负载,而非一次性加载数据的场景。
工作原理
HFresh 按照(命名)向量进行选择,与其他索引的启用方式相同。在 v1.38 版本中不再需要预览标志——通过配置向量使用该索引即可启用:
from
weaviate
.
classes
.
config
import
Configure
,
VectorDistances
client
.
collections
.
create
(
"Article"
,
vector_config
=
Configure
.
Vectors
.
text2vec_weaviate
(
name
=
"default"
,
source_properties
=
[
"title"
,
"body"
]
,
vector_index_config
=
Configure
.
VectorIndex
.
hfresh
(
distance_metric
=
VectorDistances
.
COSINE
,
)
,
)
,
)HFresh 内置了 RQ-1 量化机制:postings 以压缩格式存储在磁盘上,最终排名重新评分时会使用未压缩的向量以确保准确性。支持余弦和 l2-平方距离度量。
由于索引通过增量方式实现再平衡——拆分过大的 postings、合并过小的 postings,并在边界变化时重新分配向量——它能够持续更新而无需其他基于磁盘的索引依赖的周期性全量重建。
相关资源
- 概念:向量索引 - HFresh
- SPFresh:十亿级向量搜索的增量原地更新
MCP 服务器 - 通用可用
在 v1.37 版本中作为预览功能引入的内置模型上下文协议(MCP)服务器现已正式发布。它使 LLM、IDE 和 AI 代理能够直接与 Weaviate 交互——无需任何胶合代码即可检查模式、执行混合搜索并写回对象。该服务器是 REST API 同一端口上的 /v1/mcp 流式 HTTP 端点,通过 Bearer/API-key 令牌进行身份验证,并遵循 Weaviate 的标准 RBAC 权限。
服务器提供以下四个工具:
- weaviate-collections-get-config — 检查集合的模式和配置
- weaviate-tenants-list — 列出多租户集合的租户
- weaviate-query-hybrid — 执行混合(向量 + 关键字)搜索
- weaviate-objects-upsert — 插入或更新对象(仅在启用写入权限时可用)
你通过启用 MCP_SERVER_ENABLED 来启用服务器,可选地通过 MCP_SERVER_WRITE_ACCESS_ENABLED 暴露其写入工具。v1.38 的新特性是这两个标志现在都支持运行时配置:它们不再仅在启动时读取,Weaviate 现在可以在集群运行时从其运行时覆盖文件中读取对它们的修改。
# 运行时覆盖文件 —— 无需重启即可应用
mcp_server_enabled
:
true
mcp_server_write_access_enabled
:
true因此你可以无需滚动重启即可在运行中的集群上授予或撤销代理的写入权限。
- 文档:Weaviate MCP 服务器
- 模型上下文协议
无处不在的异步复制
异步复制是后台修复进程,用于在复制因子大于 1 的集合中保持副本同步。在 v1.38 中,它已被重新架构为通过单一调度器在集群范围内运行,而不是为每个集合单独配置和运行。现在它默认在所有复制因子大于 1 的集合上运行,而之前需要为每个集合单独启用。
一个调度器协调所有复制集合的异步修复,从共享的工作者池中获取资源,而不是每个集合使用独立的工作者池。这使修复行为在集群中保持一致,并简化了大规模操作。
随着转向中央调度器,每个集合的 maxWorkers 和 enabled 设置已被移除。两个集群级别的控制项取而代之:
# 共享异步复制工作者池的大小
ASYNC_REPLICATION_SCHEDULER_WORKERS
:
'<n>'
# 停用开关 —— 暂停所有异步复制,无需重启
ASYNC_REPLICATION_DISABLED
:
'false'ASYNC_REPLICATION_SCHEDULER_WORKERS 设置共享池的大小,ASYNC_REPLICATION_DISABLED 是一个集群范围的停用开关,你可以在运行时切换它。
- 概念:复制架构 - 异步复制
- 配置:复制
提升 API(预览)
有时你希望在不删除任何结果的情况下调整结果。过滤器对于这种情况过于粗暴——它会删除所有不匹配的项,而你真正想要的是稍微提高最新文章的排名,或优先显示有库存的产品,同时保留完整的结果集。新的提升 API 正是为此而设计。
提升操作在主搜索之后执行。它通过将原始评分与一个或多个提升条件混合,重新对候选结果进行评分,然后重新排序——在不删除任何结果的情况下提升或降低某些结果的排名。条件可以基于:
- 过滤器匹配 —— 提升满足过滤器条件的结果
- 属性值 —— 根据数字属性的值进行排序
- 时间衰减 —— 优先显示更近期(或接近某个日期)的对象
- 数值衰减 —— 优先显示接近目标数值的对象
在 Python 客户端(v4.22.0+)中,你可以构建一个提升条件并通过 boost= 参数传递给任何查询:
from weaviate.classes.query import Boost, Filter
# 在不删除其他结果的情况下柔和提升有库存产品的排名
response = collection.query.hybrid(
query="wireless headphones",
limit=10,
boost=Boost.filter(
Filter.by_property("in_stock").equal(True),
weight=0.3,
),
)权重(0–1)设置提升对最终评分的影响程度:结果为原始评分的(1 - 权重)加上提升评分的权重。提升功能仅支持 gRPC —— 没有 REST 或 GraphQL 的等效实现 —— 且单个查询最多可应用 20 个条件。
预览
提升 API 是一个预览功能,仅通过 gRPC 提供。API 和行为可能在未来的版本中发生变化。
- 指南:搜索 - 提升结果
嵌套对象过滤(预览版)
Weaviate v1.38 为基于嵌套对象属性的过滤功能提供预览支持。在此之前,对象和对象数组属性虽然可以存储,但无法直接进行过滤。
通过使用点分路径引用字段来过滤嵌套字段——例如使用 cars.make 来过滤 cars 对象属性内的 make 字段。该功能默认关闭,需要通过预览环境变量启用:
WEAVIATE_PREVIEW_NESTED_FILTERING
:
'true'启用后,点分路径可以用于任何需要提供属性名的地方,包括客户端代码:
from
weaviate
.
classes
.
query
import
Filter
response
=
collection
.
query
.
fetch_objects
(
filters
=
Filter
.
by_property
(
"cars.make"
)
.
equal
(
"Toyota"
)
,
)该功能适用于嵌套在对象和对象数组属性中的数据。
嵌套对象过滤是预览功能,默认关闭,需要通过 WEAVIATE_PREVIEW_NESTED_FILTERING 启用。API 和行为可能在后续版本中发生变化。
- 操作指南:过滤器
- 配置参考:数据类型 - 对象
性能改进与修复
除了主要功能外,v1.38 还包含大量改进。其中几个重要改进包括:
- 生产就绪的副本移动:在节点之间移动分片的副本(用于重新平衡和扩展)现在已达到生产就绪级别,通过变更捕获日志确保移动过程中写入操作持续进行。
- 默认向量索引类型:新增集群级设置可为新集合(包括命名向量)选择默认向量索引,而非始终默认使用 HNSW。
- 使用防护机制:管理员可设置服务器端对象、集合、租户和分片数量限制,以及向量索引和压缩类型的白名单。
- 新模块 —— text2vec-digitalocean:通过 DigitalOcean 的推理平台生成嵌入向量。
- 备份可靠性:备份操作不再暂停压缩,对象存储列表速度更快,这两项改进有助于大型集合更可靠地进行备份。
- 分数 BM25 属性加权:关键字搜索属性加权现在支持分数值(如 title^2.5),而不仅是整数。
- 确定性平局处理:向量搜索对等距结果进行确定性平局处理,实现稳定可重复的排序。
- 启动速度提升和改进的压缩向量索引缓存。
- Weaviate 1.38:GitHub 发布说明
社区贡献
Weaviate 是开源项目,本次发布包含多位首次贡献者的成果。感谢以下贡献者:
- @dillonledoux — 新的 text2vec-digitalocean 模块 ( #11298 )
- @anishesg — 倒排索引和 HFresh 修复,包括对负零和 1970 年前日期的正确处理 ( #11120 )
- @msnandhis — 分数 BM25 属性加权 ( #11471 )
- @3em0 — 拒绝重复的静态 API 密钥 ( #11393 )
- @kedar49 — 数据库用户标识符碰撞检查 ( #11381 )
- @SAY-5 — 异步初始化期间的 HFresh 稳定性修复 ( #11087 )
如需贡献,请查看贡献者指南和 GitHub 上的 good-first-issue 标签。
总结
Weaviate v1.38 将 HFresh 和 MCP Server 两项功能正式发布,同时重构了异步复制路径并引入两项新预览功能。
主要亮点:
- HFresh(正式版)—— 基于磁盘的 SPFresh 启发式向量索引,专为流处理工作负载设计,通过 vectorIndexType: "hfresh" 按命名向量选择,内置 RQ-1 量化
- MCP Server (GA) — 位于 /v1/mcp 的内置模型上下文协议服务器,其启用标志现在可以运行时配置
- 无处不在的异步复制 — 通过单个调度器和共享工作池实现集群范围的异步修复,默认对复制集合启用,带有运行时关闭开关
- Boost API(预览版) — 查询时重新评分,可在不删除任何结果的情况下提升或降低结果排名
- 嵌套对象过滤(预览版) — 使用点分路径对对象 / 对象数组属性进行过滤
准备好开始了吗?
该版本已作为开源项目发布在 GitHub 和 Weaviate Cloud 上,您可以在免费层级上启动集群。
note
Weaviate Cloud 上可能并非所有功能都可用。某些功能(特别是预览功能和需要特定环境配置的功能)可能在托管集群中未启用,或以不同时间表上线。
对于升级自托管版本的用户,请查看迁移指南以获取版本特定说明。
感谢阅读,祝您向量搜索愉快!
准备开始构建了吗?
查看快速入门教程,或注册 Weaviate Cloud 免费账户。
GitHub
论坛
X(Twitter)
不想错过下一篇博客?
订阅我们的双周通讯以保持最新!
通过提交,我同意
服务条款
和
.