Drools - 使用累积来查找最小值和最大值

arr*_*man 3 drools

我有一个流口水问题一直困扰着我.我想使用accumulate从Item对象列表(包含价格)中找出最小和最大价格.插入一个Member对象(包含Item对象列表),其中包含Items列表.

groovy/java source pseudo code
-------------------------------
class Item {
   BigDecimal price
}

class Member {
   List<Item>> items
}

...
droolsStatefulSession.insert(member)
session.fireAllRules()
...

rule.drl
---------
rule "rule1"
when 
   member : Member ($itemList : items)
/*

*/
then
 System.out.println("condition met...")
end
Run Code Online (Sandbox Code Playgroud)

现在问题在于上述规则是否可能如果是这样的话如何使用drools累积功能找出具有最低价格和最高价格的项目.我不想使用java/groovy实用程序函数.

我看到"收集"功能允许使用"从"然后使用数据源.我想知道"积累"是否类似于收集.

Geo*_*met 6

不需要使用accumulate,只需要做类似的事情

Item($lowestPrice : price, $id : id)
not Item(price > $lowestPrice, id < $id)
Run Code Online (Sandbox Code Playgroud)

那就是你的物品被插入工作记忆中.