有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaNeo4j:从给定的开始节点查找所有接触所有关系的路径

使用Neo4j,我正在研究一个非常简单的模型,它由五个节点组成。。E和它们之间的八种关系。对于一个给定的起始节点,我想得到所有与模型的每个关系相联系的路径。每个关系都必须触及一次

我的代码如下所示:

TraversalDescription traversal = Traversal.description().uniqueness( Uniqueness.RELATIONSHIP_GLOBAL);

Traverser t = traversal.traverse( getNode("C"));
for ( Path position : t )
{
    if( position.length() == 8 ) {
        System.out.println("Solution found");
    }
}

我的问题是,遍历器不会返回长度为8的所有可能路径,而是只返回一条

有没有办法告诉遍历者或遍历描述抛出所有路径

谢谢, 奥利


共 (1) 个答案

  1. # 1 楼答案

    你试过用Cypher查询吗?可能是这样的

    start n = node:someIndex(name='C') match p=n-[RELATION*8]->(x) return x, length(p) 
    

    您也可以尝试使用Evaluators,它可以帮助您找到具有一定深度的路径

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

    我希望它能帮助你