Traoal应该使用的Neo4j?

时间:2014-01-22 16:36:04

标签: java neo4j deprecated graph-traversal

我正在尝试Neo4J Koan Tutorial。我对Koan06感到非常困惑,其中引入了Traversal。不推荐使用方法Node.traversal,以支持Traversal.traverse。在我尝试的时候,我看到,整个Traversal类也被弃用了。我阅读文档以找出我应该使用的内容,但找不到任何内容。文档甚至没有提及Traversal已被弃用(当然,traversedescription之类的遍历方法也已弃用,但也没有明确说明。

简单的问题:我应该用什么来构建TraversalDescription

1 个答案:

答案 0 :(得分:11)

Neo4j Traversers由引擎盖下的Traversal类构建,其配置通过TraversalDescription(在Neo4j 2.0中)以GraphDatabaseService形式提供。

我相信在Neo4J的代码中仍有遗留的,已弃用的实现。

Traversal有两种类型:

1。单向遍历

通过调用实例化:

TraversalDescription traversalDescription = graphDatabaseService.traversalDescription()

获取的traversalDescription实际上是一个构建器模式,允许您为遍历设置不同的属性。请参阅http://api.neo4j.org/current/org/neo4j/graphdb/traversal/TraversalDescription.html上的API。

2。双向遍历

使用

实例化双向遍历
BidirectionalTraversalDescription bidirectionalTraversalDescription = 
      graphDatabaseService.bidirectionalTraversalDescription()

此TraversalDescription有一个开始和结尾,实际上是两个不同的TraversalDescriptions,可以使用与单向遍历类似的构建模式进行实例化。

e.g。

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

我使用Scala代码来显示实例化,我希望它很清楚。