Gremlin:在具有相同 属性 的节点之间添加边
Gremlin: adding edges between nodes having the same property
我对 Gremlin 很陌生。我正在尝试使用 Gremlin 在 DSE 图上构建一个图。我能够创建顶点:
a = graph.addVertex(label, 'label1', 'key', 1)
b = graph.addVertex(label, 'label1', 'key', 2)
c = graph.addVertex(label, 'label2', 'key', 1)
d = graph.addVertex(label, 'label2', 'key', 2)
现在我希望在 属性 'key' 匹配的两个具有不同标签的节点之间自动添加边(即在 a 和 c 之间以及 b 和 c 之间创建边)。我正在努力做到这一点。
我尝试执行以下操作
g.V().hasLabel("label1").sideEffect{g.V().("label2").has("key",it.key).addEdge("link",it)}
但我收到以下错误:
No signature of method: org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_Traverser.values() is applicable for argument types: (java.lang.String) values: [key]
有人可以帮助我解决这个问题吗?
提前致谢
嵌套 g.V()
通常不是一个好主意。您可以使用一次遍历来解决问题:
g.V().hasLabel("label1").as("a").
V().hasLabel("label2").as("b").
where("a", eq("b")).by("key").
addE("link").from("a").to("b")
另请注意,您必须允许在 DSE Graph 中进行扫描才能进行此遍历。
我对 Gremlin 很陌生。我正在尝试使用 Gremlin 在 DSE 图上构建一个图。我能够创建顶点:
a = graph.addVertex(label, 'label1', 'key', 1)
b = graph.addVertex(label, 'label1', 'key', 2)
c = graph.addVertex(label, 'label2', 'key', 1)
d = graph.addVertex(label, 'label2', 'key', 2)
现在我希望在 属性 'key' 匹配的两个具有不同标签的节点之间自动添加边(即在 a 和 c 之间以及 b 和 c 之间创建边)。我正在努力做到这一点。
我尝试执行以下操作
g.V().hasLabel("label1").sideEffect{g.V().("label2").has("key",it.key).addEdge("link",it)}
但我收到以下错误:
No signature of method: org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_Traverser.values() is applicable for argument types: (java.lang.String) values: [key]
有人可以帮助我解决这个问题吗? 提前致谢
嵌套 g.V()
通常不是一个好主意。您可以使用一次遍历来解决问题:
g.V().hasLabel("label1").as("a").
V().hasLabel("label2").as("b").
where("a", eq("b")).by("key").
addE("link").from("a").to("b")
另请注意,您必须允许在 DSE Graph 中进行扫描才能进行此遍历。