Neo4J Cypher中最长的要求是什么?

时间:2014-03-15 18:05:38

标签: neo4j cypher

我的应用程序(在Node.Js和Neo4j 2.0.1上运行)有一个很长的Cypher请求,它立即创建了大约16个节点和307之间的关系。它长约50K。

大量的关系由数据模型决定,我可能希望稍后改变,但是,如果我决定保持原样,那么有两个问题:

1)我发送给Neo4J的每个Cypher请求的最大大小是多少?

2)处理太长时间的请求的最佳策略是什么?将其拆分为较小的,然后在事务中批处理?我不喜欢这样做,因为在这种情况下,我失去了由MERGE和CREATE命令组合产生的一致性(请求自动识别了一些尚不存在的节点,创建它们,然后我可以使用他们通过MERGE获得的指数来建立他们之间的关系。

谢谢!

1 个答案:

答案 0 :(得分:0)

我通常建议

  1. 使用较小的语句,以便查询计划缓存可以立即启动并执行您的查询而无需编译,为此您还需要

  2. 参数,例如{context}或{user}

  3. 我认为最多10-15个元素的语句大小很容易处理。

    您仍然可以使用transactional cypher endpoint在一个tx中执行所有这些操作,这允许批处理语句及其参数。