Drools - 检查 wm 中是否有多个具有不同属性的事件
Drools - Check if there are multiple events with different properties in wm
我需要有关为 Drools 编写检查不同值的规则的建议。
我有这样一个事件:
public class Event {
int propertyA;
String propertyB;
}
并且我想检查工作内存中是否有 Event
以便它们的 propertyA
值相同,但它们有 4+ 个不同的 propertyB
值。
例如:如果 Event
是一个用户,propertyA
是它的 ID,propertyB
是 T 恤颜色,我会问:如果有一个用户谁穿了超过或等于 (>=) 4 种不同颜色的 T 恤。
如何实施此规则?谢谢!
找到一个具有特定A的事件,然后从具有该A的所有事件中收集B的集合。
$e: Event( $a: propertyA ) // $e ist the last of a group of As
not Event( this after $e, propertyA == $a )
accumulate( Event( propertyA == $a, $b: propertyB );
$set: collectSet( $b );
$set.size() >= 4 )
我需要有关为 Drools 编写检查不同值的规则的建议。
我有这样一个事件:
public class Event {
int propertyA;
String propertyB;
}
并且我想检查工作内存中是否有 Event
以便它们的 propertyA
值相同,但它们有 4+ 个不同的 propertyB
值。
例如:如果 Event
是一个用户,propertyA
是它的 ID,propertyB
是 T 恤颜色,我会问:如果有一个用户谁穿了超过或等于 (>=) 4 种不同颜色的 T 恤。
如何实施此规则?谢谢!
找到一个具有特定A的事件,然后从具有该A的所有事件中收集B的集合。
$e: Event( $a: propertyA ) // $e ist the last of a group of As
not Event( this after $e, propertyA == $a )
accumulate( Event( propertyA == $a, $b: propertyB );
$set: collectSet( $b );
$set.size() >= 4 )