在Neo4J代码示例(http://docs.neo4j.org/chunked/stable/tutorial-traversal-java-api.html)中,以下输出函数用于打印图形:
for ( Path position : db.traversalDescription()
.depthFirst()
.relationships( Rels.KNOWS )
.relationships( Rels.LIKES, Direction.INCOMING )
.evaluator( Evaluators.toDepth( 5 ) )
.traverse( node ) )
{
output += position + "\n";
}
输出功能显示节点和关系ID,包括。关系名称:
(6)
(6)<--[LIKES,1]--(3)
(6)<--[LIKES,1]--(3)--[KNOWS,6]-->(0)
如何显示某些节点和关系属性(在此示例中仅显示名称和关系类型)?我想有以下输出:
Joe
Joe – [likes] – Lisa
Joe – [likes] – Lisa – [knows] Lars
提前致谢
答案 0 :(得分:0)
您必须编写自己的格式化程序,并使用您要显示的属性进行配置:
toString(Node n, String prop) { return "("+node.getProperty(prop)+")"; }
toString(Relationship r) { return "-["+r.getType().name()+"]->"; }
并在路径上迭代,选择一个或另一个
public String render(Path path, String prop) {
StringBuilder result=new StringBuilder();
for (PropertyContainer pc : path) {
if (pc instanceof Node) sb.append(toString((Node)pc,prop));
else sb.append(toString((Relationship)pc));
}
return sb.toString();
}