我尝试填充的功能是在kibana中创建一个度量标准,显示"未经验证"的用户数.我发送用户注册时发送的日志,然后验证用户验证时的日志.
所以我想要的数量是注册数量和验证数量之间的差异.
在kibana我不能做这样的数学运算,所以我找到了一个解决方法:我添加了一个名为"unvalidated"的"脚本字段",当用户注册时等于1,当用户验证他的帐户时等于-1."未经验证"字段的总和应该是未经验证的用户的数量.
这是我在脚本字段中定义的脚本:
doc['ctxt_code'].value == 1 ? 1 : doc['ctxt_code'].value == 2 ? -1 : 0
有:
ctxt_code 1作为寄存器日志
ctxt_code 2作为验证日志
当我的所有日志都有"ctxt_code"时,此设置很有效,但是当没有此字段的日志被推送时,kibana会抛出以下错误:
Field [ctxt_code] used in expression does not exist in mappings

我无法理解这个错误,因为kibana说:
If a field is sparse (only some documents contain a value), documents missing the field will have a value of 0
情况就是这样.
有人有线索吗?