Esper如何对JSON格式事件中的数组字段执行包含匹配查询
Esper数组字段匹配查询方案
针对你定义的ArrayEvent JSON事件类型,筛选direction数组包含数值5的查询可以用以下两种方式实现:
- 写法1(推荐,Esper 5.x及以上版本支持):使用内置
array_contains函数,语法简洁性能最优
该函数直接接收数组字段和目标值两个参数,判断数组是否包含目标值,你的示例中event2会被正常命中返回。select * from ArrayEvent where array_contains(direction, 5) - 写法2(兼容低版本Esper):使用exists子句遍历数组判断
select * from ArrayEvent where exists ( select * from direction as dir where dir = 5 )
补充说明:你定义Schema时direction字段为
int[]类型,即使示例JSON中数组元素为字符串格式的数字,Esper解析JSON事件时会自动完成类型转换,不会影响匹配逻辑。
内容的提问来源于stack exchange,提问作者user17264134
相关产品推荐
相关产品推荐

