Dijkstra在Neo4j中使用Direction的算法

时间:2014-03-10 20:54:20

标签: neo4j dijkstra

我添加了所有节点和关系。但问题在于,当使用Dijikstra时,我并没有朝着一个方向发展:

(0)--[PROGRESSED_TO,3812]-->(1)<--[PROGRESSED_TO,3965]--(26)--[PROGRESSED_TO,4932]-->(63) weight:0.07873392808600001

我们看到有A -> B <- C -> D

为什么我的道路不仅仅是前进?

我的算法是由:

创建的
PathFinder dijkstra = dijkstra(Traversal.expanderForAllTypes(), CommonEvaluators.doubleCostEvaluator("length"));

由此我遍历路径: Iterator<WeightedPath> paths = dijkstra.findAllPaths(node_a, node_b ).iterator();

1 个答案:

答案 0 :(得分:1)

你必须告诉扩展器只能朝着一个特定的方向前进:

Traversal.expanderForAllTypes(Direction.OUTGOING);

顺便说一句,如果您使用的是Neo4j 2.0或更高版本,则应该在org.neo4j.graphdb.traversal中使用遍历组件,而不是使用org.neo4j.kernel中的遍历组件。内核代码是内部代码,可能会发生变化。像这样:

PathExpanders.forDirection(Direction.OUTGOING);