这并不是对你问题的直接回答,但它可能会给你解决问题的思路。
在80年代和90年代,我们推出了一种信息检索系统,允许非常大量的静态查询。具体来说,我们的系统拥有64MB的内存(那时候是一个巨大的负载),每天摄入超过一百万条消息,并对该流应用10,000到100,00+个静态查询。
如果我们只是迭代地将每个静态查询应用于最新的文档,我们就会失败。我们所做的是对查询进行一种反转,具体来说是识别查询中的必须拥有和可能拥有术语。然后,我们使用文档中的术语列表来查找那些有任何成功机会的查询。客户学会了创建具有强烈区分度的查询,因此有时只需要完全评估10或20个查询。
我不知道你的数据集是什么样子,也不知道你的规则是什么样子的,但可能有类似的东西可以尝试。
您可以查看 JENA 和类似的RDF规则引擎,这些引擎旨在处理非常大的事实数据库。