Neo4j中的加权图

时间:2014-03-04 01:46:21

标签: java graph neo4j

我正在运行一个Neo4j实例。我的关系是加权的。一个这样的例子代表了世界上所有的地方,并且每个地方之间都有距离。

现在在两个节点A和B之间创建关系似乎很容易:

Relationship relationship = A.createRelationshipTo(B, Relations.Knows );

但是这种关系的实力如何呢?这里有一个建议:

create a-[:`KNOWS_0.34`]->b

这可行,但不是一个特别好的解决方案,特别是如果你想根据权重计算最短距离。

有没有这样做并存储关系int或float?

2 个答案:

答案 0 :(得分:3)

我没有意识到这一点,但似乎您可以在创建Relationship时设置其他属性:

Relationship relAB = createRelationship( nodeA, nodeC, "length", 2d );

答案 1 :(得分:3)

在您的关系中使用重量属性是一种很好的方法!

在Neo4j教程页面中查看Graph Algorithm examples。它描述了使用加权关系找到最短路径的各种方法,例如:使用Dijkstra或A *算法。可以找到一个伟大的dijkstra示例here