gpt4 book ai didi

java - 如何在单次遍历中从一个顶点创建多条边

转载 作者:行者123 更新时间:2023-12-02 11:01:00 25 4
gpt4 key购买 nike

我有一个具有此签名的函数:

public void doTheJob(String from, Collection<Pair<String, String>> relations)

哪里:

from是图表应该询问的唯一值

relations是pair的集合,其中pair中的第一个元素是边label第二个类似于 from但它指定了关系的第二面。例如(假设 andy、dog 是唯一的):

"andy" ["has,dog", "has,cat", "is,person"]

我想在这些顶点之间添加这些边(它们已经存在于图中,我想查询它们并在它们之间创建边)。我的要求是在一次遍历中准备好它。

谢谢!

最佳答案

这是一种方法:

gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.addV().property('name','cat').
......1> addV().property('name','dog').
......2> addV().property('name','person').iterate()
gremlin> markoRelations = [['has','dog'],['has','cat'],['is','person']];[]
gremlin> joshRelations = [['has','dog'],['is','person']];[]
gremlin> t = g.V().has('name','marko').as('from');[]
gremlin> markoRelations.each { t = t.V().has('name',it[1]).
......1> addE(it[0]).from('from') };[]
gremlin> t.iterate()
gremlin> t = g.V().has('name','josh').as('from');[]
gremlin> joshRelations.each { t = t.V().has('name',it[1]).
......1> addE(it[0]).from('from') };[]
gremlin> t.iterate()
gremlin> g.E().hasLabel('is','has')
==>e[19][1-has->15]
==>e[20][1-has->13]
==>e[21][1-is->17]
==>e[22][4-has->15]
==>e[23][4-is->17]

不要过多地被 Groovy 语法分散注意力,只关注 Gremlin 和结构。 markoRelationsjoshRelations 只是列表列表,其中内部列表基本上是您Pair。您在行尾看到的 ;[] 与答案无关 - 它只是帮助控制 Gremlin 控制台将显示的输出。

关于java - 如何在单次遍历中从一个顶点创建多条边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51322954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com