JanusGraph如何将顶点赋值给变量,调用变量提示不存在是什么原因
saturn变量无法使用的原因
你执行:remote console后,所有输入的Gremlin语句都会直接提交给远程JanusGraph服务端执行,默认的远程连接为无会话模式,服务端不会保留每次请求的上下文变量:上一行saturn = g.V().has('name', 'saturn').next()的赋值仅在当次请求的上下文生效,下一行执行g.V(saturn)时属于全新的请求上下文,自然不存在saturn变量。
解决方案
- 方案1:将关联操作合并为单行语句,用分号分隔:
saturn = g.V().has('name', 'saturn').next(); g.V(saturn) - 方案2:连接远程时开启会话模式,服务端会保留同一会话的上下文,变量可跨请求使用:
把初始连接命令修改为::remote connect tinkerpop.server conf/remote.yaml session - 方案3:不使用本地变量,直接通过ID链式查询:
g.V(g.V().has('name', 'saturn').id())
配置文件带-server后缀的说明
官方文档提到的janusgraph-berkeleyje-lucene.properties是本地直接启动JanusGraph实例时使用的配置文件,带-server后缀的版本是专门适配Gremlin Server启动场景的配置,二者核心的存储、索引配置完全一致,-server版本仅额外增加了Gremlin Server运行所需的专属配置项,你直接使用带-server后缀的配置属于版本适配的正常差异,不会影响功能使用。
内容的提问来源于stack exchange,提问作者user3757753
相关产品推荐
相关产品推荐

