Neo4j Gremlin:所有最短的加权路径

时间:2014-03-24 12:28:54

标签: gremlin neo4j

我们正在使用Neo4J 2.0嵌入式;我们有一个包含大约1百万个节点和5000万个关系的图表;我们必须找到N shortestPath但具有众所周知的成本属性 我们看到在neo4j的GraphAlgo类中没有这样的方法,我们正在考虑使用Gremlin(或任何其他实用程序)来找到这些路径。 我们希望指定为最短路径寻找考虑哪个关系属性

有没有人找到解决这个问题的方法?我们怎样才能实现这样的功能?

任何建议都是真正的... 谢谢 安吉洛

1 个答案:

答案 0 :(得分:1)

您可以使用Gremlin计算最短路径。这是GremlinDocs中的一个例子:

http://gremlindocs.com/#recipes/shortest-path

该部分的以下片段讨论了使用" weight"用于计算路径成本的属性:

gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.v(1).outE.inV.loop(2){it.object.id!="3" && it.loops < 6}.path.filter{it.last().id=="3"}.transform{[it.findAll{it instanceof Edge}.sum{it.weight}, it]}
==>[0.4, [v[1], e[9][1-created->3], v[3]]]
==>[1.4000000059604645, [v[1], e[8][1-knows->4], v[4], e[11][4-created->3], v[3]]]

我不确定这是否正是您所追求的,但也许它会激励您找到解决方案。