Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gremlin-以有意义的信息显示中的最短(最低成本)路径_Gremlin - Fatal编程技术网

Gremlin-以有意义的信息显示中的最短(最低成本)路径

Gremlin-以有意义的信息显示中的最短(最低成本)路径,gremlin,Gremlin,我试图让Gremlin用有意义的信息向我展示最短路径(关于成本,而不是顶点旅行的数量)。[Gremlin's Recipes]中有一个类似的例子,关于如何获得从一个顶点到另一个顶点的所有路径及其各自的成本,但我找不到一种方法让Gremlin显示有意义的信息,如顶点的名称或年龄以及边的权重。例如,我们无法从下面的结果中知道谁是v[1} gremlin> g.V(1).repeat(outE().inV().simplePath()).until(hasId(5)). p

我试图让Gremlin用有意义的信息向我展示最短路径(关于成本,而不是顶点旅行的数量)。[Gremlin's Recipes]中有一个类似的例子,关于如何获得从一个顶点到另一个顶点的所有路径及其各自的成本,但我找不到一种方法让Gremlin显示有意义的信息,如顶点的名称或年龄以及边的权重。例如,我们无法从下面的结果中知道谁是
v[1}

gremlin> g.V(1).repeat(outE().inV().simplePath()).until(hasId(5)).
           path().as('p').
           map(unfold().coalesce(values('weight'),
                                 constant(0.0)).sum()).as('cost').
           select('cost','p') //(4)
==>[cost:3.00, p:[v[1], e[0][1-knows->2], v[2], e[1][2-knows->4], v[4], e[2][4-knows->5], v[5]]]
==>[cost:2.00, p:[v[1], e[0][1-knows->2], v[2], e[3][2-knows->3], v[3], e[4][3-knows->4], v[4], e[2][4-knows->5], v[5]]]

我知道Gremlin支持按()步调节器执行以下任务:

gremlin> g.V().out().out().path().by('name').by('age')
==>[marko,32,ripple]
==>[marko,32,lop]
,但我不知道如何将这两种解决方案结合起来。理想情况下,我想要的结果应该是:

==>[duration:2, path:[Chicago, supertrain, New York]]

有什么建议吗?非常感谢!

您可以在
路径
步骤后通过调制器添加
,并将
更改为
选择

g.V().hasLabel('A').repeat(outE().inV().
    simplePath()).
  until(hasLabel('C')).path().
    by(valueMap().with(WithOptions.tokens)).as('p').
  map(unfold().
    coalesce(
      select('distance'),
      constant(0.0)
    ).sum()).
    as('cost').
    select('cost', 'p')
例如: