在删除单个对象时,PropertyLengthTracker 从不被清除
作者: abdelr创建于 2026年9月1日更新于 2026年9月12日
单个对象删除路径(`deleteObject` → `cleanupInvertedIndexOnDelete` → `subtractPropLengths`)会修改 PropertyLengthTracker - 一个在 LSM 存储外部的 mmap 支持结构,不受 `WriteWALs` 的保护,但永远不会刷新它。批量删除路径会明确地每批一次刷新它(`flushWALs` → `GetPropertyLengthTracker().Flush()`);单个路径没有对应的操作,因此单个删除后发生崩溃可能会导致减法操作丢失,并使 BM25 长度正则化偏离。
内容来源: weaviate/weaviate