使用Titan 1.0.0 Gremlin shell我可以从闭包内的边缘检索单个属性值。但是尝试访问valueMap()失败并出现异常。
作品:
的gremlin> t.E()….
当你开始迭代时 each() ,你在封闭内操纵的每一个项目都是“脱离遍历” - 也就是说,你正在使用一个 Edge 对象,而不是 GraphTraversal 宾语。
each()
Edge
GraphTraversal
Edge 有个 value() 方法类似于 GraphTraversal ,但它没有 valueMap() 方法。你可以用 ElementHelper.propertyValueMap() 代替。
value()
valueMap()
ElementHelper.propertyValueMap()
这是一个简单的例子:
gremlin> g = TinkerFactory.createModern().traversal() ==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard] gremlin> g.E().valueMap() ==>[weight:0.5] ==>[weight:1.0] ==>[weight:0.4] ==>[weight:1.0] ==>[weight:0.4] ==>[weight:0.2] gremlin> g.E().each{ edge -> println ElementHelper.propertyValueMap(edge) };[] [weight:0.5] [weight:1.0] [weight:0.4] [weight:1.0] [weight:0.4] [weight:0.2]