我发现,如果在python中将导入函数设计为对每个节点使用单个事务,那么它将非常慢。
我有数百万个节点,它们必须以最快的方式进行处理。目前,我有一个gremlin脚本,它在生成器中返回一组节点和边。这是高效的,因为它是事务性的。然而,每当我在边上迭代时,我必须知道我的应用程序将它们连接到哪个节点;
我需要知道的是,对于任何边缘,边缘上的inV或outV是否会强制进行远程查找?
发布于 2014-04-24 07:15:37
Gremlin是在图形数据库服务器内部运行的查询语言(可以将它想象成用于图形的SQL --您可以每次向服务器发送完整的查询,也可以将Gremlin脚本存储在服务器上并像存储过程一样执行它们)。
请参阅这篇文章,了解如何使用服务器端Gremlin脚本(存储过程):
https://groups.google.com/d/topic/gremlin-users/Up3JQUwrq-A/discussion
如果您将查询拆分为多个Bulbs请求,那么您做错了一些事情。不要对每个查询都使用Bulbs内置的inV()和outV() --编写一个Gremlin脚本来为您执行完整的查询( Gremlin就是这样做的--它在图形数据库中以一种高效的方式迭代图形)。
有关如何在Bulbs中使用自定义Gremlin脚本的信息,请参阅此示例(您可以将此技术用于事务性请求和查询):
Is there a equivalent to commit in bulbs framework for neo4j
注意:上面的示例没有使用服务器端脚本--它每次都会将脚本发送到服务器;但是,您可能希望将脚本存储在生产环境中的服务器上。
https://stackoverflow.com/questions/23174038
复制相似问题