2013-07-04 142 views
-1

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

回答

0

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

从开始...

alice->[:KNOWS]->bob 

...它可以轻松地成为......

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

...甚至...

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

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

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

知识关系就在那里很多,因为社交网络是解释图数据库工作方式的简单方法。

+0

感谢皮特,詹姆斯的宝贵意见,但我还有一个问题......我的目的是计算节点的重量(没有关系),就像爱丽丝和鲍勃的詹姆斯例子一样(爱丽丝 - > [:知道] - > bob alice - > [:LOVES] - > bob alice - > [:IS_MARRIED_TO] - > bob)weight是3那么我们可以通过一个查询(Cipher Query)计算节点的权重吗?用一个例子来解释我...... – sumit

+0

那么,这不是真正的重量,因为所有的关系都有1的权重。通常情况下,你需要为关系添加一个属性权重,并将它查询为MATCH alice - > [relations:KNOWS |: LOVES |:IS_MARRIED_TO] - > bob RETURN sum(relations.weight),但在你的情况下,你也可以做RETURN count(关系),因为你的所有权重都是1. –

+0

查看这个控制台的例子weight = always 1 - > http://console.neo4j.org/r/cx9wg4 –

相关问题