查询neo4j中特定于案例的节点
我有一个像附加图像一样的设置橙色节点表示案例,而蓝色节点表示案例中各种活动的执行者 我想依次询问每个案例。在每个案例中,我需要添加关系查询neo4j中特定于案例的节点,neo4j,cypher,Neo4j,Cypher,我有一个像附加图像一样的设置橙色节点表示案例,而蓝色节点表示案例中各种活动的执行者 我想依次询问每个案例。在每个案例中,我需要添加关系 [:RELATED {value: 1}] 从nodei到nodek,对于位于(ID位于i和j之间的节点)这些执行者节点对(nodei,nodej之间的所有k,和=2 [示例和预期输出]: 在案例1中,由于ID为1和ID为4的执行者节点满足条件,因此在以下节点之间添加了关系: Node(ID:1) to Node(ID:2)
[:RELATED {value: 1}]
从nodei到nodek,对于位于(ID位于i和j之间的节点)这些执行者节点对(nodei,nodej之间的所有k,和
[示例和预期输出]:
Node(ID:1) to Node(ID:2)
Node(ID:1) to Node(ID:3)
Node(ID:2) to Node(ID:3)
Node(ID:1) to Node(ID:2)
Node(ID:1) to Node(ID:3)
Node(ID:2) to Node(ID:3)
Node(ID:1) to Node(ID:2)
Node(ID:1) to Node(ID:3)
b。对于节点(ID:3)和节点(ID:5),从添加关系
Node(ID:3) to Node(ID:4)
提前感谢。如问题注释中所述,您的计算应该颠倒:
node j - node i >= 2
对于案例3,还有一点,根据您的解释,节点2和3之间应该存在第三种关系
这是我提出的一个查询,您可以在neo4j控制台中进行测试:
匹配(n:大小写)
匹配路径=(pe)(pe2)
其中pe.name=pe2.name
和pe2.id-pe.id>=2
路径n,(pe2.id-pe.id)作为长度
将范围(head(nodes(path)).id+1,last(nodes(path)).id-1)作为id,
N
头(节点(路径)).id作为启动程序,
长度
将ID作为x展开
匹配(perf:Performer{id:starter})(perf2:Performer{id:x})
MERGE(perf)-[:将_与{value:1,length:length}]>(perf2)关联
在案例1中,为什么节点(ID:1)与节点(ID:2)之间应该存在rel
?不一样的名字和(2-1)==1。谢谢你指出问题中的错误。您的解决方案使我的日子变得愉快:)在案例1中(对于其他人也是如此),节点(ID:1)和节点(ID:2)之间的关系是因为节点(ID:1)和节点(ID:4)满足条件。是否可以将另一个属性“Length”添加到:RELATES_,该属性将存储节点(ID:1)和节点(ID:4)的ID差异。所以在案例1中,(A->D)的长度为3,(A->B)的长度为3,(B->A)的长度为2。尝试使用Length:pe2.id-perf.id,但它表示未定义pe2。这是因为pe和pe2未通过传递给查询的其余部分。我更新了答案,在关系中添加了length属性。