繁体   English   中英

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]

有人可以帮助我解决这个问题吗? 提前谢谢你

嵌套的gV()通常是个坏主意。 您可以使用单个遍历解决问题:

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中的扫描才能使此遍历工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM