繁体   English   中英

OptaPlanner:加入期间或之后过滤之间的区别

[英]OptaPlanner: Difference between filtering during or after join

在语义或性能方面,两者之间有什么区别吗?

cf.forEach(Entity.class)
        .join(cf.forEach(Entity.class),
                Joiners.filtering(myBiPredicate)))
        ...

对比

cf.forEach(Entity.class)
        .join(cf.forEach(Entity.class))
        .filter(myBiPredicate)))
        ...

另外, Joiners是否按照给定的顺序执行? (例如,是否建议将修剪大量对的过滤器放在参数列表的早期?)

回答你的第一个问题 - 不,这两个约束之间没有实际区别。 Joiners.filtering(...)存在,因此您可以在ifExists(...)调用中应用过滤器; 在进行普通连接时,您不妨在连接后进行过滤。

为了回答你的第二个问题,我写了整篇博文 是的,最好早点修剪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM