2

グラフデータベースを使用する必要があるユースケースがあります。

10000ノードと1000000エッジ(約)。

今、私はこのようにクエリする必要があります。任意の2つの頂点について、それらの間のすべての可能なパスを見つけます。

origntDbにかかる時間はどれくらいですか?取得時間を最小限に抑えたいのですが、これはorientDBでサポートされていますか?

2つの頂点の距離は約20になりますが、各頂点には約10の出力エッジがある場合があります。

4

2 に答える 2

1

OrientDBにバンドルされているshortestPath()関数を使用します。

select shortestPath(#8:32, #8:10)

ここで、2つのRIDは2つのノードのレコードIDです。

于 2013-01-25T12:14:38.150 に答える
1

グレムリンの頂点1と2の間のすべてのパスについて、次のようにします。

g.v(1).out.loop(1){true}{it.object.id==2}.path

もちろん、サイクルがある場合、可能なすべてのパスは無限であるため、おそらくこれを実行する必要があります。

g.v(1).out.loop(1){true}{it.object.id==2}.path[0..100]

...最大100個のパスを取得します。これを実行して、循環パスを削除することもできます。

g.v(1).out.simplePath.loop(2){true}{it.object.id==2}.path[0..100]

マルコ。

于 2013-01-26T16:37:55.970 に答える