节点间的Neo4j关系

节点间的Neo4j关系,neo4j,Neo4j,Neo4j图形数据库在节点之间有一个关系,即[:KNOWS]。如何在除[:KNOWS]之外的节点之间添加更多关系以在数据库中拥有更多相关数据?您可以在两个节点之间创建任意数量的关系,甚至是相同类型的多个关系。如果关系上的属性不同,则具有相同类型的多个关系可能很有趣 从 alice->[:KNOWS]->bob …它很容易变成 alice->[:KNOWS]->bob alice->[:LOVES]->bob ……甚至 alice->[:KNOWS]-

Neo4j图形数据库在节点之间有一个关系,即[:KNOWS]。如何在除[:KNOWS]之外的节点之间添加更多关系以在数据库中拥有更多相关数据?

您可以在两个节点之间创建任意数量的关系,甚至是相同类型的多个关系。如果关系上的属性不同,则具有相同类型的多个关系可能很有趣

alice->[:KNOWS]->bob
…它很容易变成

alice->[:KNOWS]->bob
alice->[:LOVES]->bob
……甚至

alice->[:KNOWS]->bob
alice->[:LOVES]->bob
alice->[:IS_MARRIED_TO]->bob

每个关系都有一个由用户定义的关系类型。在Cypher中,正如James所描述的,您可以用纯文本来完成

但是,如果您使用的是核心Java API,则需要创建一个实现RelationshipType的枚举,然后可以将任何枚举值作为RelationshipType传递


The:KNOWS的关系非常突出,因为社交网络是解释图形数据库工作原理的一种简单方式。

感谢Pieter,James提出的宝贵建议,但我还有一个问题。。。我的目的是计算节点的权重(关系的数量),就像在James的alice和bob的例子中(alice->[:KNOWS]->bob alice->[:LOVES]->bob alice->[:is_marred\u to]->bob)权重是3,那么我们可以通过一个查询(密码查询)来计算节点的权重吗?如果是的话,那么你能用一个例子来解释我吗,这不是真正的权重,因为你所有的关系都有1的权重。通常,您会向关系添加属性权重,并像MATCH alice->[relations:KNOWS |:LOVES |:IS_marred_to]->bob RETURN sum(relations.weight)那样查询它,但在您的情况下,您也可以只进行返回计数(relations),因为您的所有权重都是1。请查看此控制台示例,了解weight=always 1-->和此示例,每种类型的关系都有不同的权重(知道0.2,爱0.9,结婚2.4)-->非常感谢Pieter,在我的项目中处理图形数据库时,它确实帮了我很多忙。。。。