1

我是neo4j的初学者,我想知道是否有可能使用neo4j找到最佳路径,我有成本,但我想要第一最佳路径,第二最佳路径等等......

如果我有 3 个可能的路径,我需要按成本排序所有 3 个,如果我有 100 个可能的路径,我也需要限制结果(例如,前 10 个结果)。

这在neo4j中是可能的吗?

PS:在我的测试中,我使用了 java-astar-routing 示例:https ://github.com/neo4j-examples/java-astar-routing

感谢并为我糟糕的英语感到抱歉;),

4

2 回答 2

2

基本上,您想要的是两个节点之间的所有路径,然后计算它们的权重,然后按成本对它们进行排序。

后两位很容易做到,现在您只需要找到所有路径:

http://api.neo4j.org/current/org/neo4j/graphalgo/GraphAlgoFactory.html#allPaths(org.neo4j.graphdb.RelationshipExpander , int)

于 2013-07-05T08:56:13.710 回答
0

您还可以使用最佳优先排序策略编写自己的遍历器。就像是:

Traversal.traversal()
    .order( new MyOwnBestFirstOrdering() )
    ...
    .traverse( startNode );

class MyOwnBestFirstOrdering extends BestFirstSelectorFactory<Integer,Integer>
{
    @Override public Integer startData() {
        return 0;
    }

    ...
}
于 2013-07-13T20:12:34.053 回答