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