当前位置: 首页 > 知识库问答 >
问题:

Gremlin:使用顶点变量通过HTTP向图形添加边

阙沛
2023-03-14

我正在尝试通过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()到< code>addV(),如果我移除< code>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()"}

我得到例外

遍历策略已完成,无法再调制遍历“,”Exception-Class“:”java.lang.IllegalStateException”

另请注意,在通过curl发送之前,我将整个gremlin连接到一行中。为了易读性,我在这里将它们拆分为换行符。任何帮助都很好。-谢谢你

共有1个答案

关翰
2023-03-14

iterate()不返回Vertex。。。它只是迭代遍历以生成副作用(即,图形添加了一个顶点,但没有返回结果)。你可能只需要做:

{"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()"}
 类似资料:
  • `使用命名空间标准;

  • 我有一个用户名数组(例如,)要添加到图中的“user”标签下。 现在我首先要检查用户名是否已经存在(),然后仅在“user”标签下添加username属性不匹配的内容。 此外,这可以在单个gremlin查询或groovy脚本中完成吗? 我正在使用titan graph数据库、tinkerpop3和gremlin REST服务器。

  • 我在我的应用程序中使用gremlin REST服务器,我想在单个查询中为一个顶点创建多个边。我有从哪里创建边缘到单个顶点的顶点ID列表。 对于eg-g.V(12,13,14,15)。添加(“使用”,g.V(100)) 我已经尝试了许多遍历步骤,但无法使其工作。

  • 问题内容: 我创建了一个扩展awt.Polygon类的类。我正在尝试编写一种方法,该方法给出了多边形的PathIterator和一个表示顶点的Point,将点添加到路径中的适当位置。 例如:一个点为(0,0)(0,10)(10,10)(10,0)(正方形)的多边形,给定点(1,5)将使多边形(0,0) (1,5)(0,10)(10,10)(10,0) 提前致谢 问题答案: 扩展@normaloci

  • 我的应用程序中的所有图像目前都是jpg或png,这曾经是可以的。GUI是固定大小,适合于显示的任何屏幕,每个人都很高兴。 现在高分辨率和视网膜显示器更常见,正常大小的应用程序在某些屏幕上看起来很小(如果调整大小,则模糊不清),因此我想通过将它们转换为矢量图像(eps或svg)来更新图形以适应任何未来的分辨率进展。 在我这样做之前,JavaFX有办法像使用ImageViews一样使用矢量图像吗?看起

  • Azure Cosmos DB中的Gremlin API允许我们在不同分区(p1、p2)中创建具有相同id(v1)的顶点。当我为一个分区(p1)中的顶点(v1)创建自边(e1)时,两个分区(p1的v1和p2的v2)中的顶点都创建了两条边。但实际上,p1的顶点(v1)只需要创建一条边。我使用gremlin版本3.4.10创建边。在Azure Portal中为顶点添加源和目标时,观察到了创建重复边的相

  • 希望你过得很好!我正在尝试编写一个程序,在那里我需要创建一个动态加权图,并获得从一个顶点到另一个顶点的最短路径。但运行程序后,我得到了以下异常: 代码如下:

  • 我正在创建一个Titan图(由Dynamodb支持);我正在使用Titan 1.0.0并运行Gremlin Server 3(在TinkerPop3上)。 我试图在一条直线上用一个标签和多个属性向图中添加一个顶点。我可以用一个标签和一个属性添加一个顶点,在创建一个顶点后,我可以向其添加多个属性,但似乎我不能一次完成所有操作。 为了测试,我在gremlin shell中运行命令,但最终用例是通过RE