我正在使用最新版本的 Neo4j 来构建节点图和与 Java API 的关系图。
我的问题是我需要将节点遍历到一定深度。数据库中相同深度的两个节点之间可能存在关系,但我不想在遍历中返回该关系。
我试图通过实现 Evaluator 接口来制作自定义 Evaluator,但它覆盖的唯一方法是Evaluation evaluate(Path path)
. 它似乎没有与之相关的深度概念。
我真的很感激一些关于如何将节点与其深度相关联(从特定节点遍历时)或修剪两个节点处于同一级别的关系的建议。
您可以使用Evaluators.atDepth()来获得一个预定义的 Evaluator,它只包含具有一定深度的路径。
在您的自定义评估器中,您可以简单地检查传递的路径参数的长度,以决定是否要包含此路径,例如:
Evaluation evaluate(Path path) {
return path.length() == 4 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.EXCLUDE_AND_CONTINUE);
}
路径有一个length(),即深度。长度等于路径中的关系数,即节点数 - 1。