Skip To Content

属性过滤器

GeoEvent 服务中的属性过滤器用于根据属性条件过滤事件。 可以为一个属性过滤器配置一个或多个属性表达式。 这些表达式的逻辑组合构成了过滤条件,只有满足这些条件的 GeoEvent 才可通过过滤器。

GeoEvent Server 中支持以下属性运算符:

  • 等于 (=) - 该运算符保留属性值等于指定值的 GeoEvent,如下例所示:
    IdString = 3XAB891
  • 不等于 (!=) - 该运算符保留属性值不等于指定值的 GeoEvent,如下例所示:
    StatusString != Err
    注:

    不应将等于 (=) 和不等于 (!=) 运算符应用于浮点值。 例如,不配置 Radius = 3.14159 这样的过滤器表达式。 而是使用大于 (>)、小于 (<) 或其他运算符。

  • 大于 (>) - 该运算符保留属性值大于指定值的 GeoEvent,如下例所示:
    Speed > 50
  • 大于或等于 (>=) - 该运算符保留属性值大于或等于指定值的 GeoEvent,如下例所示:
    Speed >= 50
  • 小于 (<) - 该运算符保留属性值小于指定值的 GeoEvent,如下例所示:
    Altitude < 1000
  • 小于或等于 (<=) - 该运算符保留属性值小于或等于指定值的 GeoEvent,如下例所示:
    Altitude <= 1000
    注:

    不应将大于 (>)、小于 (<) 和其他运算符应用于字符串值。 例如,不配置 Company > ABC 这样的过滤器表达式。 而是使用等于 (=) 或不等于 (!=) 运算符并将整个字符串包含在表达式中。

  • IN - 当逗号分隔的值列表中存在指定字段的值时,该运算符保留 GeoEvent,如下例所示:
    StatusCode IN HK1,HK3,HK5
  • MATCHES - 当指定字段的值与正则表达式相匹配时,该运算符保留 GeoEvent,如下例所示:
    StatusCode MATCHES ^HK[135]

    注:

    指定的正则表达式将评估为与整个事件字段值匹配或不匹配;不支持部分匹配。 在上述示例中,如果 StatusCode 包含超出单个数字的额外字符,那么表达式需要包含 .* 以匹配属性值中的任何尾随字符。

  • EXISTS - 当收到的事件方案中存在指定字段时,该运算符保留 GeoEvent,如下例所示:
    Geometry EXISTS
    .
  • ISNULL - 当指定字段包含空值时,该运算符保留 GeoEvent,如下例所示:
    Geometry ISNULL
注:

字符串属性值可以为空值或为空。 长度为零 (0) 的字符串将定义为空字符串。 未定义值的字符串对象为空字符串。 可以使用 ISNULL 运算符来测试字符串是否为空值。 可以将 MATCHES 运算符与正则表达式 ^$ 配合使用来测试字符串是否为长度为零(或空)的字符串。