2

ノードのグラフと Java API との関係を構築するために、Neo4j の最新バージョンを使用しています。

私の問題は、ノードを特定の深さまでトラバースする必要があることです。データベース内の同じ深さの 2 つのノード間に関係が存在する可能性がありますが、トラバーサルでその関係を返したくありません。

Evaluator インターフェイスを実装してカスタム Evaluator を作成しようとしましたが、それがオーバーライドするメソッドはEvaluation evaluate(Path path). それに関連付けられた深さの概念がないようです。

ノードをその深さに関連付ける方法 (特定のノードからトラバースする場合)、または 2 つのノードが同じレベルにある関係を削除する方法について、アドバイスをいただければ幸いです。

4

3 に答える 3

0

Evaluators.atDepth()を使用して、特定の深さのパスのみを含む定義済みの Evaluator を取得できます。

カスタム エバリュエーターでは、渡されたパス パラメーターの長さをチェックして、このパスを含めるかどうかを決定できます。たとえば、次のようにします。

Evaluation evaluate(Path path) {
    return path.length() == 4 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.EXCLUDE_AND_CONTINUE);
}
于 2013-01-25T11:09:01.813 に答える
0

そのためにCypherを試しましたか?

start n = node(1) match p=n-[*4]->(x) return x, length(p) 

?

于 2013-01-25T09:35:16.410 に答える
0

パスには、深さである length() があります。長さは、パス内の関係の数、つまりノード数 - 1 に等しくなります。

于 2013-01-27T20:39:29.463 に答える