【发布时间】:2014-12-31 19:20:56
【问题描述】:
这是此处定义的问题的延续
Query case-specific nodes in Neo4j
所以情况如下图所示(请忍受蹩脚的图像)
蓝色链接表示 [:RELATES_TO] 关系,黑框中的数字表示 Length 属性的值。类似的值也存在于此处未显示的所有其他此类 [:RELATES_TO] 关系。
现在我想根据执行者节点的“名称”属性查找并创建独特的节点。继续链接中的示例,将只有 4 个新的唯一节点 [A,B,C,D]。让我们将它们称为 NewUniqueNodes,并将 name 作为属性。
然后我想依次查询每个案例。在每种情况下,我都需要以 Length 属性的递增顺序 查询 [:RELATES_TO] 关系。对于任何这样的节点对 (x,y) 我需要添加一个关系 [:FINALRESULT{strength:0}] 从 NewUniqueNode(Name:x) 到 NewUniqueNode(name:y) 强度更新为 (strength + value)。 value 是与 [:RELATES_TO] 的 value 属性关联的数字nodes(x,y) 对。
[示例和预期输出]
case1,访问节点的顺序为
Node(ID:3) to Node(ID:4)
Node(ID:1) to Node(ID:2)
Node(ID:1) to Node(ID:3)
在处理这些节点时,结果将是
NewUniqueNode(name:A)-[:FINALRESULT{strength: 1}]-NewUniqueNode(name:D)
NewUniqueNode(name:A)-[:FINALRESULT{strength: 1}]-NewUniqueNode(name:B)
NewUniqueNode(name:B)-[:FINALRESULT{strength: 1}]-NewUniqueNode(name:A)
在处理完整的案例集(case1 + case2 + case3)时,结果将类似于
NewUniqueNode(name:A)-[:FINALRESULT{strength: 1}]-NewUniqueNode(name:D)
NewUniqueNode(name:A)-[:FINALRESULT{strength: 3}]-NewUniqueNode(name:B)
NewUniqueNode(name:B)-[:FINALRESULT{strength: 2}]-NewUniqueNode(name:A)
NewUniqueNode(name:C)-[:FINALRESULT{strength: 1}]-NewUniqueNode(name:B)
NewUniqueNode(name:A)-[:FINALRESULT{strength: 1}]-NewUniqueNode(name:A)
【问题讨论】: