我正在运行一个Neo4j实例。我的关系是加权的。一个这样的例子代表了世界上所有的地方,并且每个地方之间都有距离。
现在在两个节点A和B之间创建关系似乎很容易:
Relationship relationship = A.createRelationshipTo(B, Relations.Knows );
但是这种关系的实力如何呢?这里有一个建议:
create a-[:`KNOWS_0.34`]->b
这可行,但不是一个特别好的解决方案,特别是如果你想根据权重计算最短距离。
有没有这样做并存储关系int或float?
答案 0 :(得分:3)
我没有意识到这一点,但似乎您可以在创建Relationship
时设置其他属性:
Relationship relAB = createRelationship( nodeA, nodeC, "length", 2d );
答案 1 :(得分:3)
在您的关系中使用重量属性是一种很好的方法!
在Neo4j教程页面中查看Graph Algorithm examples。它描述了使用加权关系找到最短路径的各种方法,例如:使用Dijkstra或A *算法。可以找到一个伟大的dijkstra示例here。