Gremlin:使用顶点变量通过 HTTP 向图形添加边
Gremlin: Adding Edges to Graph Over HTTP using Vertex Variables
我正在尝试通过 https 对远程 JanusGraph 实例执行 gremlin 脚本。我已将我的问题过滤到我尝试使用顶点变量添加边的部分。我正在尝试添加两个顶点,将结果分配给一个变量并使用它们添加一条边。此外,由于脚本
背后的程序逻辑,我也尽量避免使用像 g.V().addV(..).aaddV(..).addE(..)
这样的单行脚本
以下 gremlin 在 gremlin 控制台(远程会话)中运行
def graph=ConfiguredGraphFactory.open("ga");
def g = graph.traversal();
v1=g.addV('node1');
v2=g.addV('node2');
v1.addE('test').to(v2);
但是当我尝试通过 https(针对 compose-janusgraph 服务器发布)执行相同操作时,出现错误。我确实将 .iterate()
添加到 addV()
,如果我删除 addE(..)
行,则会添加顶点。但是当我尝试
{"gremlin":"def graph=ConfiguredGraphFactory.open('ga');
def g = graph.traversal();
v1=g.addV('node16').property('name','testn16').iterate();
v2=g.addV('node17').property('name','testn2').iterate();
v1.addE('test18').to(v2);
g.tx().commit()"}
我得到异常
The traversal strategies are complete and the traversal can no longer
be modulated","Exception-Class":"java.lang.IllegalStateException"
另请注意,在通过 curl 发送之前,我将整个 gremlin 连接成一行。为了便于阅读,我在这里将它们拆分为换行符。任何帮助都会很棒。 -- 谢谢
iterate()
不是 return Vertex
...它只是迭代遍历以产生副作用(即图形添加了一个顶点但没有结果是 returned)。你可能只需要做:
{"gremlin":"graph=ConfiguredGraphFactory.open('ga');
g = graph.traversal();
g.addV('node16').property('name','testn16').as('v1').
addV('node17').property('name','testn2').as('v2').
addE('test18').from('v1').to('v2').iterate();
g.tx().commit()"}
我正在尝试通过 https 对远程 JanusGraph 实例执行 gremlin 脚本。我已将我的问题过滤到我尝试使用顶点变量添加边的部分。我正在尝试添加两个顶点,将结果分配给一个变量并使用它们添加一条边。此外,由于脚本
背后的程序逻辑,我也尽量避免使用像g.V().addV(..).aaddV(..).addE(..)
这样的单行脚本
以下 gremlin 在 gremlin 控制台(远程会话)中运行
def graph=ConfiguredGraphFactory.open("ga");
def g = graph.traversal();
v1=g.addV('node1');
v2=g.addV('node2');
v1.addE('test').to(v2);
但是当我尝试通过 https(针对 compose-janusgraph 服务器发布)执行相同操作时,出现错误。我确实将 .iterate()
添加到 addV()
,如果我删除 addE(..)
行,则会添加顶点。但是当我尝试
{"gremlin":"def graph=ConfiguredGraphFactory.open('ga');
def g = graph.traversal();
v1=g.addV('node16').property('name','testn16').iterate();
v2=g.addV('node17').property('name','testn2').iterate();
v1.addE('test18').to(v2);
g.tx().commit()"}
我得到异常
The traversal strategies are complete and the traversal can no longer be modulated","Exception-Class":"java.lang.IllegalStateException"
另请注意,在通过 curl 发送之前,我将整个 gremlin 连接成一行。为了便于阅读,我在这里将它们拆分为换行符。任何帮助都会很棒。 -- 谢谢
iterate()
不是 return Vertex
...它只是迭代遍历以产生副作用(即图形添加了一个顶点但没有结果是 returned)。你可能只需要做:
{"gremlin":"graph=ConfiguredGraphFactory.open('ga');
g = graph.traversal();
g.addV('node16').property('name','testn16').as('v1').
addV('node17').property('name','testn2').as('v2').
addE('test18').from('v1').to('v2').iterate();
g.tx().commit()"}