我是neo4j的新手,所以感谢您的帮助 . 我有一个neo4j数据库,其节点具有属性“Color”和两种关系类型,“Previous”和“Next” . 我有一个ArrayList,它按照应该遍历的顺序包含节点属性,例如Blue,Red,Yellow . 如何遍历图形以查找确切路径节点(颜色:蓝色) - >节点(颜色:红色) - >节点(颜色:黄色),其间没有节点以及类型“下一步”的所有关系,存在于数据库中?我在java应用程序中使用neo4j .
每个之间的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 )
我刚刚破解了你的域名,并且遍历工作得很好!
1 回答
每个之间的NEXT关系可能就足够了,因为传入的NEXT可以被认为是“之前的” .
我认为你应该索引你的颜色,然后从第一个节点开始遍历(在这种情况下是“蓝色”),并有一个这样的遍历:
我刚刚破解了你的域名,并且遍历工作得很好!