Gremlin 小精灵:可以';来自其他节点的t sum属性

Gremlin 小精灵:可以';来自其他节点的t sum属性,gremlin,tinkerpop3,gremlin-server,Gremlin,Tinkerpop3,Gremlin Server,我有一个带有post顶点的图,它有一个或多个tag顶点的边 我试图计算每个标签的总重量: // Create empty graph graph = TinkerGraph.open() g = graph.traversal() // Create some tag vertices g.inject('food', 'drink').addV('tag').property(id, identity()) // Create some posts with 'food' tag post

我有一个带有
post
顶点的图,它有一个或多个
tag
顶点的边

我试图计算每个标签的总重量:

// Create empty graph
graph = TinkerGraph.open()
g = graph.traversal()

// Create some tag vertices
g.inject('food', 'drink').addV('tag').property(id, identity())

// Create some posts with 'food' tag
posts = g.inject(10, 20).addV('post').property('weight', identity()).toList()
g.V(posts).addE('tagged').to(g.V('food'))

// Create some posts with 'drink' tag
posts = g.inject(5).addV('post').property('weight', identity()).toList()
g.V(posts).addE('tagged').to(g.V('drink'))

// Attempt to calculate total weight for each tag
g.V().
  hasLabel('post').as('p').
  out('tagged').
  group('g').
    by(id).
    by(select('p').values('weight').sum()).
  cap('g').next()
但我得到了这个错误:

java.lang.Long cannot be cast to org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet
请注意,计算所有立柱的总重量效果良好:

g.V().hasLabel('post').values('weight').sum()
有什么建议吗

使用Gremlin Server 3.3.4这是3.3.4(和早期版本)中的一个错误。这里有一个解决方法:

gremlin> g.V().hasLabel('post').as('p').
......1>   out('tagged').
......2>   group().
......3>     by(id).
......4>     by(select('p').by('weight').sum())
==>[food:30,drink:5]

你能提供一个小样本图表让我们重现错误吗?@DanielKuppitz我添加了一个完整的脚本哇,找到了答案。这是一个愚蠢的错误,我不敢相信这以前从未发生过。预计它将在下一版本中修复。