如何在 drools 规则语言中加入两个查询
How to join two query in drools rule language
我有两个用于查找特定项目的查询,它们如下:
query "score" (double s)
Item( score > s )
end
query "price" (double p)
Item( price < p )
end
以下查询用于查找项目 score > s or price < p
:
query "price or score" (double p, double s)
price(p;) or score(s;)
end
我的问题是如何找到所有项目 score > s and price < p
以下查询无效。它执行交叉连接,而不是内部连接。
query "price and score" (double p, double s)
price(p;) and score(s;)
end
谢谢
此查询提供价格 < p 和分数 > s 的项目事实:
query "price and score" (double p, double s)
item: Item(price < p, score > s)
end
要将一个查询组合成两个查询,您必须提供一个变量来绑定对事实的引用:
query "score" (double s, Item item)
Item( this == item, score > s )
end
query "price" (double p, Item item)
Item( this == item, price < p )
end
query "price and score" (double p, double s )
price(p, item; ) and score(s, item; )
end
我有两个用于查找特定项目的查询,它们如下:
query "score" (double s)
Item( score > s )
end
query "price" (double p)
Item( price < p )
end
以下查询用于查找项目 score > s or price < p
:
query "price or score" (double p, double s)
price(p;) or score(s;)
end
我的问题是如何找到所有项目 score > s and price < p
以下查询无效。它执行交叉连接,而不是内部连接。
query "price and score" (double p, double s)
price(p;) and score(s;)
end
谢谢
此查询提供价格 < p 和分数 > s 的项目事实:
query "price and score" (double p, double s)
item: Item(price < p, score > s)
end
要将一个查询组合成两个查询,您必须提供一个变量来绑定对事实的引用:
query "score" (double s, Item item)
Item( this == item, score > s )
end
query "price" (double p, Item item)
Item( this == item, price < p )
end
query "price and score" (double p, double s )
price(p, item; ) and score(s, item; )
end