遍历框架
Neo4j 遍历框架 Java API 是一种基于回调、延迟执行的方式,用于在 Java 中指定图中的所需移动。一些遍历示例可以在遍历图中找到。
主要概念
遍历以图上的起始节点为起点,并返回一组表示已访问节点及其关系的路径。遍历由遍历描述定义,其中可能包含以下元素
-
起始节点 — 定义遍历的起点。
-
路径扩展器 — 定义要遍历的内容,通常是关系方向和类型。
-
唯一性 — 定义图上先前遍历的节点和关系的限制。
-
评估器 — 决定返回什么以及是否停止或继续遍历当前位置之外的路径。
-
顺序 — 定义路径扩展的顺序,例如
深度优先
或广度优先
。
使用遍历框架
遍历框架可以嵌入到 Java 应用程序中使用。它也可以在通过用户定义过程扩展 Neo4j 时使用。有关示例,请参阅使用遍历框架的用户定义过程。
遍历框架 vs Cypher
尽管遍历框架比 Cypher 查询语言可读性更差且更复杂,但它提供了一种强大的图遍历方法。这是因为遍历框架可以在遍历的每一步动态地做出自定义选择,从而使过程比 Cypher 更具表现力且可能性能更高。
与 Cypher 相比,使用遍历框架的一些优点包括
-
遍历框架允许使用任何所需的 Java 库来帮助评估遍历。
-
它允许在路径遍历期间进行自定义剪枝,这可能会提高遍历的性能。有关更多信息,请参阅评估器。
-
使用 Cypher 时,无法指定路径扩展的顺序(例如深度优先)。然而,使用遍历框架,可以指定路径遍历的顺序。
-
使用 Cypher 时,只有当指定
RELATIONSHIP_GLOBAL
唯一性时,关系才会被遍历。通过使用遍历框架,可以指定遍历路径上的唯一性约束。
通常建议在可能的情况下使用 Cypher。但是,当使用遍历框架时,请记住
|