多值字段复审与修复

2026-10-13 · 接续第 045 号回归之后的复审。

本轮改动

修复 lookup 多行匹配结果未被识别为多值字段的问题。stats、chart、timechart 可以逐值统计和分组;eval 复制后继续保留多值属性。OUTPUT 覆盖旧字段时同步更新属性,OUTPUTNEW 保留已有字段的属性。只产生单值的查找表输出继续使用原来的单值路径。

lookup users uid OUTPUT name AS a | stats dc(a) as d
匹配结果 x、y 和 z:以前 d=2,现在 d=3。

补上 stats、chart、timechart 的 dedup_splitvals 选项。显式设为 true 时,每条事件内重复的分组值只参与一次;不同事件即使内容相同,仍分别计算。多个多值分组字段保留所有独立组合。

查询单条事件 a=x,x,y 的计数
stats / chart / timechart 默认选项x=2,y=1
dedup_splitvals=truex=1,y=1
dedup_splitvals=falsex=2,y=1

三个命令的官方默认值都是 false。此前进度消息中“chart/timechart 默认去重”的说法已纠正,不改变已有查询的默认重复计数行为。

验证

最终完整 tools/check_all.sh 已通过,并打印 CHECK_ALL PASSED:fmt、clippy、97 个单元测试、11 个 API 测试、冒烟测试和全部 47 个回归用例(含界面测试)。测试针对按最终运行代码重建的网关执行。

剩余限制

语义参考

以下三个官方页面的 dedup_splitvals 条目均说明默认 false,仅显式 true 时移除多值分组字段中的重复值。