2017-06-28 11 views
0

OrientDBで最短経路を探すにはどうすればよいですか?の長さはですか? 最短パスの検索方法はたくさんありますが、このパスの長さだけを取得する方法が必要ですか?OrientDBで最短経路長を見つける

だからではなく、頂点like with this query

SELECT expand(path) FROM (

    SELECT shortestPath($from, $to) AS path 

    LET 

    $from = (SELECT FROM Profiles WHERE Name='Santo' and Surname='OrientDB'), 

    $to = (SELECT FROM Countries WHERE Name='United States') 

    UNWIND path 

) 

のリストで、私はちょうどその結果として、単一の番号をしたいと思います。

Javaを使用してDBを照会しているため、Java APIの機能もOKです。

+0

リストの長さを取得できませんか?エッジに関連する重みがない限り、長さはn - 1になります。a - > b - > c – efekctive

答えて

1

これを試してみてください:

SELECT sum(path.size()) FROM (

    SELECT shortestPath($from, $to) AS path 

    LET 

    $from = (SELECT FROM Profiles WHERE Name='Santo' and Surname='OrientDB'), 

    $to = (SELECT FROM Countries WHERE Name='United States') 

    UNWIND path 

) 

はそれがお役に立てば幸いです。

よろしくお願いします。

関連する問題