我是neo4j的首发,我想知道是否有可能找到使用neo4j的最佳路径,我有成本,但我想要第一个最好的路径,第二个最好的路径等等......
如果我有3条可能的路径,我需要按成本排序全部3条,如果我有100条可能的路径,我也需要限制结果(例如,前10条结果)。
这在neo4j中是可能的吗?
PS:在我的测试中,我使用了java-astar-routing样本:https://github.com/neo4j-examples/java-astar-routing
感谢和抱歉我的英语不好;),
答案 0 :(得分:2)
基本上,你想要的是两个节点之间的所有路径,然后计算它们的权重,然后按成本对它们进行排序。
后两位非常容易,现在您只需找到所有路径:
答案 1 :(得分:0)
您还可以使用最佳排序策略编写自己的遍历器。类似的东西:
Traversal.traversal()
.order( new MyOwnBestFirstOrdering() )
...
.traverse( startNode );
class MyOwnBestFirstOrdering extends BestFirstSelectorFactory<Integer,Integer>
{
@Override public Integer startData() {
return 0;
}
...
}