我添加了所有节点和关系。但问题在于,当使用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();
答案 0 :(得分:1)
你必须告诉扩展器只能朝着一个特定的方向前进:
Traversal.expanderForAllTypes(Direction.OUTGOING);
顺便说一句,如果您使用的是Neo4j 2.0或更高版本,则应该在org.neo4j.graphdb.traversal中使用遍历组件,而不是使用org.neo4j.kernel中的遍历组件。内核代码是内部代码,可能会发生变化。像这样:
PathExpanders.forDirection(Direction.OUTGOING);