根据neo4j中的其他关系建立关系?

时间:2016-04-07 12:09:47

标签: neo4j cypher

假设我在neo4j中存储了以下关系。

A->B,A->D,C->B,C->E

这里A,C具有相同的标签节点,B,E也具有相同的标签节点。 什么是密码查询来计算A和C有多少个节点?  基于我想要建立A和C之间的关系。我想在它们之间添加一个关系等级并给它一些值0.5,因为1节点常见。该查询会是什么样的?

1 个答案:

答案 0 :(得分:0)

要返回 A C 之间的公共节点数,请匹配的模式 A 在一个 C 另一个与中间节点。然后计算中间节点的出现次数。

match (:TypeOne {name: 'A'})--(common)--(:TypeOne {name: 'C'})
return count(common)

如果您想在匹配后直接在 A C 之间建立关系,那么将mergecreate A C 节点一起使用。并使用set为新创建的关系添加值。

这样的事情应该满足你的要求。

match (a:TypeOne {name: 'A'})--(common)--(c:TypeOne {name: 'C'})
with a, c, count(common) as in_common
merge (a)-[rel:COMMON_WITH]->(c)
set rel.value = in_common * 0.5
return *