令人困惑的drools这个运算符的例子

时间:2014-11-28 17:02:41

标签: drools

我正在学习Drools,并在PACKT“Instant Drools Starter”(第19页)中遇到了一个令我感到困惑的例子。

有人可以解释一下这实际上是做什么的。

    $p : Purchase ( total > 15) 
    Purchase ( this != $p, tacoCount > 2)

据我所知,第一行是查找“总数”超过15的购买并将其分配给变量$ p。

然后第二行(我认为)说与另一个购买匹配,除了分配给$ p的购买,tacoCount超过2。

但这提供了什么目的?这些规则的简明英文版本是什么。

担心这里隐藏着一些微妙的东西,或者这只是一个“糟糕”的例子?

1 个答案:

答案 0 :(得分:3)

普通英语。让总计超过15-(Purchase ( total > 15))的购买让我们称之为$p。现在,如果还有另一次购买(Purchase ( this != $p,),其中taco计数大于2(tacoCount > 2)),那么就让我们做点什么。

我不认为这对模式背后有太多“意义”。我只是说明你必须使用Java关键字(而不是Drools运算符)来避免规则与大于15的单个购买匹配的情况 - 超过两个玉米饼。如果你想要两个不同的事实,这是至关重要的。

(这是TacoHouse营销奇迹可能会提出的一种规则,如果他在过去两周内有一些像这样的购买,可以为客户的下一次购买提供免费的辣椒酱。可能需要额外的限制。 - 它可能会发生。;-))