基于neo4j中的其他关系建立关系?

基于neo4j中的其他关系建立关系?,neo4j,cypher,Neo4j,Cypher,假设我在neo4j中存储了以下关系 A->B,A->D,C->B,C->E 这里A、C是相同的标签节点,B、E也是相同的标签节点。 计算A和C共有多少个节点的密码查询是什么? 基于这一点,我想在a和C之间建立一个关系。我想在它们之间添加一个关系等级,并给它一些值,比如说0.5,因为1个节点是公共的。该查询是什么样的?返回A和C之间的公共节点数,以匹配一个模式,其中一个模式具有A,另一个模式具有中间节点。然后计算中间节点的出现次数 match (:TypeOne {nam

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

A->B,A->D,C->B,C->E
这里A、C是相同的标签节点,B、E也是相同的标签节点。 计算A和C共有多少个节点的密码查询是什么?
基于这一点,我想在a和C之间建立一个关系。我想在它们之间添加一个关系等级,并给它一些值,比如说0.5,因为1个节点是公共的。该查询是什么样的?

返回AC之间的公共节点数,以匹配一个模式,其中一个模式具有A,另一个模式具有中间节点。然后计算中间节点的出现次数

match (:TypeOne {name: 'A'})--(common)--(:TypeOne {name: 'C'})
return count(common)
如果您希望通过匹配直接在aC之间创建关系,则使用
merge
create
aC节点。并使用
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 *

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

match (:TypeOne {name: 'A'})--(common)--(:TypeOne {name: 'C'})
return count(common)
如果您希望通过匹配直接在aC之间创建关系,则使用
merge
create
aC节点。并使用
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 *

但是假设我有一个csv文件,并且有相同类型的不同节点a、C,那么我必须根据它们之间的公共节点在所有这些节点之间建立关系。那么查询应该是什么?我假设csv文件的每一行都包含正在查找的两个节点的键(或某个标识符)。您可以将上面查询中的'A'和**'C'**匹配项替换为您正在查找的实际节点(例如line.A_节点和line.C_节点)。但假设我有一个csv文件,并且存在相同类型的不同节点,C然后我必须根据所有这些节点之间的公共节点建立它们之间的关系。那么查询应该是什么?我假定csv文件的每一行都包含正在查找的两个节点的键(或某个标识符)。您可以将上面查询中的'A'和**'C'**匹配项替换为您正在查找的实际节点(例如line.A_节点和line.C_节点)。