7

現在、Neo4J Koan Tutorialを試しています。紹介されているKoan06で本当に混乱していTraversalます。メソッドNode.traversalは推奨されていませんTraversal.traverse。試してみると、Traversalクラス全体も非推奨になっていることがわかりました。ドキュメントを読んで、何を使用することになっているのかを調べましたが、何も見つかりません。ドキュメントでは、それTraversalが非推奨であることについても言及していませんでした (もちろん、トラバーサル メソッドも同様traversedescription明確化せずに非推奨です)。

簡単な質問: をビルドするには何を使用すればよいTraversalDescriptionですか?

4

1 に答える 1

11

Neo4j トラバーサーは内部でTraversalクラスによって構築され、その構成は(Neo4j 2.0 で)をTraversalDescription介して利用可能になります。GraphDatabaseService

Neo4J のコードには、レガシーで非推奨の実装がまだあると思います。

トラバーサルには 2 つのタイプがあります。

1. 一方向トラバーサル

以下を呼び出してインスタンス化します。

TraversalDescription traversalDescription = graphDatabaseService.traversalDescription()

取得した traversalDescription は、実際には、トラバーサルにさまざまなプロパティを設定できるビルダー パターンです。http://api.neo4j.org/current/org/neo4j/graphdb/traversal/TraversalDescription.htmlで API を参照してください。

2.双方向トラバーサル

双方向トラバーサルは、以下を使用してインスタンス化されます

BidirectionalTraversalDescription bidirectionalTraversalDescription = 
      graphDatabaseService.bidirectionalTraversalDescription()

この TraversalDescription には、実際には 2 つの異なる TraversalDescription である開始側と終了側があり、単方向トラバーサルと同様の構築パターンを使用してインスタンス化できます。

例えば

graphDatabaseService
  .bidirectionalTraversalDescription()
    .startSide(graphDatabaseService
      .traversalDescription()
      .depthFirst()
      .uniqueness(Uniqueness.NODE_PATH))
    .endSide(graphDatabaseService
      .traversalDescription()
      .depthFirst()
      .uniqueness(Uniqueness.NODE_PATH))

インスタンス化を示すために Scala コードを使用しましたが、わかりやすいと思います。

于 2014-01-22T16:50:03.617 に答える