Tinkergraph遍历返回一个空数组[我的图上]

问题描述 投票:0回答:1

我已经导入了图形,可以确认顶点和边的数量与应该存在的数量匹配。我在图形上运行simplepath()计算,我的第一个问题是如何访问路径数组或映射返回的任何内容,我想我理解了,因为我添加了.toList并将其打印到控制台,但是我只是得到[]空数组?

我在做什么错,我需要访问从路径返回的结果集?

我不在gramlin控制台中以Java运行的查询是:

g.V().has("id", "FirstVertexIdValue").shortestPath().with(ShortestPath.target, __.has("id", "EndVertexIdValue")).with(ShortestPath.distance, "weight").toList();

我也运行以下命令,但仍返回一个空数组:

g.V("startVertexId").out().simplePath().until(hasId("endVertexId").path().limit(1);

打印systemOut时的响应为[]

gremlin tinkerpop tinkerpop3 tinkergraph
1个回答
0
投票

没有一些示例数据,很难分辨出什么是完全错误的,但是根据您所问的格雷姆林宫,有些事情要考虑:

  • [shortestPath() -step是一个OLAP step,因此要求您使用g定义withComputer()-可以找到一个示例here
  • 我注意到您在每个查询中都以两种不同的方式搜索起始顶点。在第一种情况下,您搜索名为“ id”的属性,在第二种情况下,您搜索顶点标识符(在T.id中使用时称为has())。也许找不到初始的起始顶点?
  • [第二遍历在试图进行循环时(即它具有until()条件,但未指定repeat()操作。
  • [当遍历没有返回期望值时,我尝试将它们简化到可以看到遍历正在过滤掉期望的遍历器的程度。换句话说,打开Gremlin Console并连接图形。确保g.V("startVertexId")返回所需的顶点。对结果满意后,添加一个步骤,运行g.V("startVertexId").out()并进行验证。继续该模式,直到找到结果没有返回的地方。您也可以使用profile()步骤运行遍历,它应该显示遍历遍历何处,但是有时通过将遍历分开并简化它会更容易识别。

© www.soinside.com 2019 - 2024. All rights reserved.