代码之家  ›  专栏  ›  技术社区  ›  rajeevdl

drl中IN运算符项的限制,INoperator不支持大列表

  •  0
  • rajeevdl  · 技术社区  · 2 年前

    我试图编写一个包含大量项目(超过10000个)的规则,但最终失败了。 $list1:MyColl。项目C((“1”、“2”、“3”、“4”、“5”、“6”、……中的项目)由$MyColl提供。项目)

    我想知道这里的限制是什么,有没有办法用IN运算符处理如此庞大的列表。

    我很想找出这里的限制,这样我就可以通知用户相应地定义规则。 此外,正在寻找一种编写规则的替代方法,以支持使用IN运算符的大量项目列表。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Roddy of the Frozen Peas    2 年前

    将庞大的项目列表保存到变量中并反转操作。计数器部分 in not in contains not contains .

    或者,您也可以随时使用 .contains($item) 在将值保存到变量后,在集合本身上。当然,性能要求你避免 eval 在DRL中执行此操作,以及取决于所选数据类型的底层操作的实际性能。

    此外,如果这些字符串都是整数,您可能会认为您首先使用了错误的数据类型,但根据您的实际值,可以进行范围比较。