如何以编程方式向Neo4J Cypher查询添加约束

时间:2014-04-10 18:59:48

标签: neo4j cypher

我正在为Neo4J编写一个服务器插件。该插件接收一个密码查询,并执行它。目前,我的实施使用CypherExecutor

我现在需要进一步限制结果。 (例如,假设结果需要通过ACL过滤。)

一种方法是在执行查询后过滤结果。出于性能原因以及其他限制,我宁愿不这样做(例如,任何聚合结果都是错误的。)

我考虑过将约束添加到查询本身。我查看了使用command.AbstractQuery生成的CypherParser子类。该对象模型是不可变的。

我想知道是否需要克隆Neo4J的ExecutionEngine和CypherCompiler,只是为了扩展ExecutionPlanBuilder ......如果可能的话,我想避免使用此选项。

有关如何做到这一点的任何建议?

就我而言,我只是想模拟多个孤立的图形。我可以建模如何 - 我是否向每个节点添加'tenantId',或维护租户节点并为每个节点添加(:Tenant)<-[:scopedTo]-(n)关系。

0 个答案:

没有答案