2012-04-16 11 views
1

BFSを使用した有向非循環グラフ(DAG)をトラバースする必要があります。 neo4jをREST API経由で使用していますので、neo4jとの通信にはCypherを使用しています。サイファーを使用したBFSトラバーサル

Cypherを使用すると、開始ノードからすべてのパスのセットを取得することができ、それらのノードからBFSトラバーサルを取得できます。

サイファーを使用してBFSトラバーサルを取得する簡単な方法があるのだろうかと思っていました。私が出力として期待するのは、一連のノードの配列です。

+0

私はお手伝いしたいと思いますが、達成しようとしていることをよく理解していません。もう少し情報が役立つでしょう。 – Andres

+0

@Andres:最終的には、グラフの上にBFSイテレータのトラバーサルを深さで並べた出力をしたいと思います。 – Dan

+0

長さの後に結果のパスを注文することはできませんでしたか、多分、それぞれの最後のノードを取ることができませんでしたか?http://bit.ly/ItCCQY –

答えて

1

あなたはその後、もしかしたら昇順にパスを取り戻すために

start n=node(1) match p = n-[*1..]->m return p, length(p), last(p) order by length(p) asc 

ようhttp://bit.ly/HF0p0tのように、それぞれの最後のノードを取る、長さの後に結果のパスを注文することができませんでしたか?

+0

ありがとう!今私はちょうど与えられたタイプのエッジを横断する方法を理解する必要があります。それがそこにあることを知らなかった... – Dan

+0

私は最後の(p)を使用するとSyntaxException:未知の関数を取得しています。私はバージョン1.6.1を持っています。それは古すぎるのですか?どのバージョンをインストールすることをお勧めしますか? – Dan

+1

はい、これはNeo4j 1.7です。これらの機能は1.6ではないと思います –

関連する問題