Neo4j Traversal不加载所有属性

时间:2014-01-09 04:59:09

标签: properties neo4j traversal

在我的遍历中,我看一个属性。 但似乎所有属性都被加载,这使得Traversal变慢。 是否有办法为我不想看的属性配置延迟加载?

TraversalDescription td = Traversal.description().evaluator( Evaluators.atDepth(1) );
for ( Path p : td.traverse( myNode ) ) {
    String nodeName = (String) p.endNode().getProperty("name");
    // do some stuff
}

我只找到了一条线索here ......

谢谢!

===

编辑:我的目标是按名称对节点进行排序,例如电影......

1 个答案:

答案 0 :(得分:2)

首次访问节点或关系的任何属性时,所有属性都会加载到内存中,请参阅http://docs.neo4j.org/chunked/stable/performance-guide.html#_neo4j_primitives_lifecycle

高性能遍历的最佳实践是更改图形模型,使遍历不必在遍历时触摸属性。根据您的域名,您可以通过以下方式获取使用更详细的关系类型或在Neo4j 2.0中使用标签。

您的代码段使用已弃用的遍历,您应该迁移代码以使用http://docs.neo4j.org/chunked/stable/tutorial-traversal-java-api.html中记录的遍历API。