首页 文章

Neo4j使用自定义求值程序获取检索节点的深度

提问于
浏览
2

我正在使用最新版本的Neo4j来构建节点图和与Java API的关系 .

我的问题是我需要遍历节点到一定深度 . 数据库中相同深度的两个节点之间可能存在关系,但我不想在遍历中返回该关系 .

我尝试通过实现Evaluator接口来创建自定义Evaluator,但它覆盖的唯一方法是 Evaluation evaluate(Path path) . 它似乎没有与之相关的深度概念 .

我真的很感激如何将节点与其深度相关联(当从特定节点遍历时)或修剪两个节点处于同一级别的关系时的一些建议 .

3 回答

  • 0

    您可以使用Evaluators.atDepth()获取仅包含具有特定深度的路径的预定义Evaluator .

    在自定义计算器中,您只需检查传递的路径参数的长度,以确定是否要包含此路径,例如有:

    Evaluation evaluate(Path path) {
        return path.length() == 4 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.EXCLUDE_AND_CONTINUE);
    }
    
  • 0

    你有没有试过Cypher,就像这样

    start n = node(1) match p=n-[*4]->(x) return x, length(p)
    

  • 0

    路径有一个length(),即深度 . 长度等于路径中的关系数,即节点数 - 1 .

相关问题