0

我遇到了几个与 gremlin-python 相关的问题,这些问题在纯 gremlin 中不存在:

  • 我不能直接选择给定的顶点类型(gV('customer'))而不迭代所有顶点(gV().hasLabel('customer'))
  • 我从 Python 收到“达到最大递归”错误。gremlin 中的相同查询运行顺畅且快速
  • “.next()”命令在 gremlin-python 中运行速度非常慢,而在 gremlin 中需要 1 秒

因此,从 Python/gremlin-python,我希望能够对服务器进行纯 gremlin 查询并将其结果直接存储在 Python 变量中。那可能吗?

(如果重要的话,我在 Apache Zeppelin 上使用 gremlin-python)

4

1 回答 1

3

我不能直接选择给定的顶点类型(gV('customer'))而不迭代所有顶点(gV().hasLabel('customer'))

g.V('customer')在 Gremlin 中的意思是“查找 id 为 'customer' 的顶点”而不是“查找标签为 'customer' 的顶点。对于后者,您需要您编写的内容g.V().hasLabel('customer')。这些规则在 Gremlin 的每个变体中都是相同的,包括 Python。而且,您是纠正这样的查询g.V().hasLabel('customer')会很昂贵,因为没有多少图形可以优化这种类型的操作。在大型图形上,这通常被认为是使用 Gremlin Spark 进行的 OLAP 查询。

我从 Python 收到“达到最大递归”错误。gremlin 中的相同查询运行顺畅且快速

那是一个错误。现在已经解决了,但是修复并没有发布到 pypi。目前正在准备发布,因此您将在 3.2.10 和 3.3.4 上看到此版本。如果您需要立即修补,您可以看到修复相当简单

“.next()”命令在 gremlin-python 中运行速度非常慢,而在 gremlin 中需要 1 秒

我不确定你到底看到了什么。我认为您可能希望详细了解您的环境,并详细说明如何重新创建差异。也许你应该把这个问题带到 gremlin-users 邮件列表。

因此,从 Python/gremlin-python,我希望能够对服务器进行纯 gremlin 查询并将其结果直接存储在 Python 变量中。那可能吗?

这是完全有可能的,这正是 gremlin-python 的本意。它使您能够用 Python 编写 Gremlin 并从服务器获取结果,以便在客户端根据需要进行处理。

于 2018-10-05T19:19:40.953 回答