【发布时间】:2020-11-06 18:09:06
【问题描述】:
我想使用两次遍历的结果a, b 来计算属性的值。我不知道如何将它们加入到combinedTraversal 中,两个遍历都从原点元素/顶点开始。
Graph graph = TinkerFactory.createModern();
GraphTraversal a = __.values("age").count().as("count")
.constant(10).as("allCount")
.math("count / allCount")
// .as("a");
GraphTraversal b = __.values("age").count().as("count")
.constant(10).as("allCount")
.math("count / allCount")
// .as("b");
GraphTraversal combinedTraversal = __
.local(a).as("a")
.local(b).as("b")
.math("a * b");
graph.traversal().V()
.has("age")
.property(Cardinality.single, "value", combinedTraversal)
.iterate();
在示例中,遍历 a 和 b 假设从给定顶点开始并计算它们的值。当我使用local() 时,遍历的位置发生了变化,我不知道如何退回到原点。
另一方面,使用sideEffect() 并不引用当前元素,而是将所有元素的值计算到一个映射中。
有什么方法可以构建这样的combinedTraversal? (故意选择“复杂”的计算遍历,当然有更简单的方法来解决这个例子)
谢谢。
【问题讨论】:
标签: gremlin tinkerpop tinkerpop3