返回给定参数集的所有匹配规则

时间:2018-03-08 02:20:51

标签: database graph amazon-dynamodb search-engine rule-engine

我正在寻找一种有效的方法来存储规则并检索给定查询的匹配规则子集 规则可以包含三个运算符(和,或,而不是) 示例:规则可以是:
  - Rule1 | (C1和C2)|
  - Rule2 | (C3或C2)和(C4或C5)|
  - Rule3 | (C3和C4)|
  - Rule4 | (C1和(不是C8)|
  - Rule5 | (C2)|

现在,属于类别集{C1,C2,C5}的用户,符合条件的规则是:Rule1,Rule2,Rule4和Rule5。

在数据模型和数据结构/数据库方面,存储这些规则的有效方法是什么?主要关注的是延迟。 < 10毫秒

途径

我在想:

  • 将类别作为节点和关系作为逻辑运算符(和,或,不是)保存在图形数据库中。然后我可以从查询集{c1,c2,c5}中的任何节点开始,并遍历并在遍历时拉出符合条件的规则。主要关注的是延迟,因为我以前没有使用图形数据库,甚至可以缓存它们。
  • 使用带有DAX的dynamoDB以反向索引方式存储它,例如Category =>规则,映射。因此,对于查询集中的每个类别,获取限定规则,然后遍历每个类别并根据每个规则标准消除。这种方法的问题是,在每个类别索引下都必须重复相同的规则,这看起来效率不高。
    • 弹性搜索过滤器是一种选择吗?

注意:类别不是预先修复的,可以添加为新类别,也可以是100个。欢迎任何建议如何解决这个问题?

0 个答案:

没有答案