python 灯泡 - 边缘 inV() 和 outV() 是远程查找调用吗?

标签 python bulbs

我艰难地发现,如果你在 python 中设计导入函数,为每个节点使用单个事务,那么速度会非常慢。

我有数百万个节点,必须以尽可能最快的方式处理它们。目前,我有一个 gremlin 脚本,它返回生成器中的一组节点和边。这是有效的,因为它是事务性的。然而,每当我迭代边缘时,我必须知道将它们连接到我的应用程序的哪个节点;

我需要知道的是,对于任何边,边上的 inV 或 outV 是否强制进行远程查找?

最佳答案

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

注意:上面的示例没有使用服务器端脚本——它每次都会将脚本发送到服务器;但是,您可能希望在生产环境中将脚本存储在服务器上。

关于python 灯泡 - 边缘 inV() 和 outV() 是远程查找调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174038/

相关文章:

python - 如何让 turtle 认出一个圆圈?

Python:回显到文件(如 Bash)

python - 如何计算条件列中值的频率?

python - 如何将 ArangoDB 与灯泡和 rexster 一起使用?

neo4j - 在 Bulbs 中更新边缘的正确方法(neo4j 或 titan)

python - 在其他计算机上测试 EXE 时找不到 PyInstaller ImportError DLL

Python:使用for循环更改变量后缀

python - 在函数python中传递带冒号的变量

python - 在 Rexster 中测试从 Groovy 命令行创建顶点

python - 灯泡:仅在尚不存在时创建顶点