我正在尝试通过将遍历组件放入函数中,使用 gremlin python 为我的遍历创建可重用组件,但我遇到了一些遍历组件无法正常工作的问题。
作为设置,我正在使用 docker 容器运行 gremlin 服务器,并将配置文件从github repo加载到现代图中
docker run -p 8182:8182 tinkerpop/gremlin-server:3.4.6 conf/gremlin-server-modern.yaml
我的测试 python 代码如下所示:
from gremlin_python.process.anonymous_traversal import traversal
from gremlin_python.process.graph_traversal import __
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
def connect_gremlin(endpoint='ws://localhost:8182/gremlin'):
return traversal().withRemote(DriverRemoteConnection(endpoint,'g'))
def n():
return __.values('name')
def r():
return __.range(2,4)
g = connect_gremlin()
# works as expected
g.V().map(n()).toList()
# returns an empty list
g.V().map(n()).filter(r()).toList()
# but using range step directly works as expected
g.V().map(n()).range(2,4).toList()
我可以成功地将values
步骤移动到一个函数中,但是当我尝试对步骤执行相同的操作时,range
它返回一个空列表而不是第 2 到第 4 项。有人知道我在做什么错吗?