正确的做法这更是一个最佳实践的问题。我正在为高度结构化的数据实现搜索后端,实质上,这些数据由本体,术语以及它们之间的一组复杂映射组成。 Neo4j看起来很合适,在做了一些原型设计后,我决定用py2neo作为与neo4j进行通信的一种方式,主要是因为对批量操作的支持很好。这比任何事都更像是一个最佳实践问题。水合物大量实体在py2neo
我感到沮丧的是,我在介绍需要在代码中使用的更高级抽象类型时遇到了问题 - 我坚持使用对象直接作为mini- orm,但后来我做了很多很多的原子休息调用,这会导致性能下降(我有一个相当大的数据集)。
我一直在做的是得到我的查询结果,使用它们的get_properties批量水合我的对象,这是很好的预制件,这就是为什么我首先下了这条路线,但这使得我传递元组(代码,属性)在我的代码中,它完成了工作,但并不漂亮。在所有。
所以我想我要问的是,如果在py2neo中有一个相当丰富的对象图的最佳实践,在保留性能的同时获得ORM类的细微差别(在我的情况下意味着要做可能就像批量查询)
我的评论似乎有点偏离主题,但在这里不用无论如何:如果您运行此一次,然后检查'gdb.order'它会显示2(用于Alice和Bob)。如果你再次运行它,你会得到4号命令,因为你正在创建节点而不检查它们的唯一性(例如,通过使用'batch.get_or_create_indexed_node(...)')。所以这个代码只有在你知道你的节点是唯一的时候才会起作用。用'get_or_create_indexed_node'的问题是,返回值[似乎不工作(http://stackoverflow.com/q/20010509/1174169)与'set_labels'或'set_properties'(py2neo 1.6.1,Neo4j的2.0的3.0 RC1) – cod3monk3y 2013-12-12 04:24:39