Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 是否有能力通过时间限制限制密码查询结果?_Neo4j_Cypher_Gremlin - Fatal编程技术网

Neo4j 是否有能力通过时间限制限制密码查询结果?

Neo4j 是否有能力通过时间限制限制密码查询结果?,neo4j,cypher,gremlin,Neo4j,Cypher,Gremlin,我在生产中运行相当耗时的密码查询。查询不需要有所有匹配的结果,而是应该在指定的时限内完成。如果有10000个可能的匹配项,可以选择5000个,而不是neo4j事务超时,这是很小的 是否可以在cypher查询中指定timelimit,比如在Gremlin timelimit步骤中 您可以使用APOC程序来实施时间限制 过程的第一个参数必须是密码查询,当查询返回0或NULL或FALSE时,该查询将停止过程。该查询可以访问包含查询返回的上一个值的$previous(或者NULL,如果这是第一次调用查询

我在生产中运行相当耗时的密码查询。查询不需要有所有匹配的结果,而是应该在指定的时限内完成。如果有10000个可能的匹配项,可以选择5000个,而不是neo4j事务超时,这是很小的


是否可以在cypher查询中指定timelimit,比如在Gremlin timelimit步骤中

您可以使用APOC程序来实施时间限制

过程的第一个参数必须是密码查询,当查询返回
0
NULL
FALSE
时,该查询将停止过程。该查询可以访问包含查询返回的上一个值的
$previous
(或者
NULL
,如果这是第一次调用查询)。查询的返回值必须命名为
loop

第二个参数必须是返回所有要处理的项(例如节点)的密码查询,第三个参数必须是对第二个参数返回的每个项都有效的密码查询。第二个参数的密码查询返回的命名值(例如,命名的
foo
)可用于第三个参数的密码查询(例如,
$foo

第四个参数是“批量大小”,即在再次询问第一个参数以决定是否停止之前,第三个参数应处理的项目数

在下面的示例查询(对于虚构的用例)中,我假设
$duration
(等待回答的大概最大毫秒数)和
$batchSize
(每个批次的大小)作为参数传递(到外部密码查询):


伟大的多谢各位!如果只更新了部分数据,当事务超时发生时,这部分数据不会回滚吗?
WITH timestamp() + $duration AS endTime
CALL apoc.periodic.rock_n_roll_while(
  'RETURN timestamp() < endTime AS loop',
  'MATCH (p:Person) RETURN p',
  'MATCH (p) WHERE p = $p SET p.lastname = p.name',
  $batchSize)
MATCH (p:Person)
SET p.lastname = p.name