首页 文章

如何在neo4j中遍历节点属性的顺序列表?

提问于
浏览
0

我是neo4j的新手,所以感谢您的帮助 . 我有一个neo4j数据库,其节点具有属性“Color”和两种关系类型,“Previous”和“Next” . 我有一个ArrayList,它按照应该遍历的顺序包含节点属性,例如Blue,Red,Yellow . 如何遍历图形以查找确切路径节点(颜色:蓝色) - >节点(颜色:红色) - >节点(颜色:黄色),其间没有节点以及类型“下一步”的所有关系,存在于数据库中?我在java应用程序中使用neo4j .

1 回答

  • 2

    每个之间的NEXT关系可能就足够了,因为传入的NEXT可以被认为是“之前的” .

    我认为你应该索引你的颜色,然后从第一个节点开始遍历(在这种情况下是“蓝色”),并有一个这样的遍历:

    String[] colors = new String[] { "Blue", "Red", "Yellow" };
    Node start = db.index().forNodes( "colors" ).get( "color", colors[0] ).getSingle();
    Traversal.description().uniqueness( Uniqueness.RELATIONSHIP_GLOBAL ).breadthFirst().relationships( Types.NEXT, Direction.OUTGOING ).evaluator( new Evaluator()
    {
        @Override
        public Evaluation evaluate( Path path )
        {
            String currentColor = (String) path.endNode().getProperty( "color" );
            boolean endOfTheLine = path.length()+1 >= colors.length;
            return currentColor.equals( colors[path.length()] ) ?
                    Evaluation.of( endOfTheLine, !endOfTheLine ) : Evaluation.EXCLUDE_AND_PRUNE;
        }
    } ).traverse( start )
    

    我刚刚破解了你的域名,并且遍历工作得很好!

相关问题