概述:elasticsearch 后面新增一个字段,比如:is_robot是否爬虫(0-否、1-是)  long。

一、老数据查询无法显示

老索引数据没有该字段,新增索引会有该字段;配置图表中该字段作为变量查询条件,默认配置查询条件,is_robot: $IsRobot。
默认全部


=ALL,只能显示索引有该字段的

=否,只能显示索引有该字段的,值=0

=是,只能显示索引有该字段的,值=1

原因分析:选择All走的OR语法

二、兼容老数据保证可显示

使用_exists_判断字段是否存在,

query:

((NOT _exists_: is_robot) || (_exists_: is_robot && is_robot: $IsRobot))

或者

((NOT _exists_: is_robot) OR (_exists_: is_robot AND is_robot: $IsRobot))

=ALL,显示索引有该字段的、索引无该字段的

=否,显示索引有该字段的 值=0、索引无该字段的

=是,与=ALL,数据一致;不符合预期。

三、总结

虽然选择“是”数据不符合预期,但是“All”、“否”可以用。只有通过 新增字段后新数据创建时间,分辨数据了。

query语法,$IsRobot不支持判选择 “All”、“否”判断,如果支持就完美了,如:

(($IsRobot: (All OR 0) && NOT _exists_: is_robot) || (_exists_: is_robot && is_robot: $IsRobot))

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐