如何在java中使用GremlinPipeLine使用类似搜索填充的顶点集之间添加边

时间:2015-04-09 08:53:54

标签: java titan gremlin

我想通过使用类似搜索来过滤两组顶点,然后我想在这些顶点之间添加边缘,如果属性,例如。 location匹配。

  • 第1步:使用mgrNo进行搜索,例如以100开头

  • 第2步: 喜欢使用mgrNo搜索,例如以200

  • 开头
  • 第3步:添加边缘 如果属性说明,则在步骤1和2生成的顶点之间 例如。顶点A和顶点B的location匹配。

我想知道如何使用gremlinPipeLine

在java中执行此操作

1 个答案:

答案 0 :(得分:1)

我不确定你真的需要复杂的Gremlin才能做到这一点:

// using some groovy for simplicity note that this is graph query syntax 
// and not a "pipeline". to convert to java, you will just need to iterate
// the result of vertices() into an ArrayList and convert the use of 
// each{} to foreach or some other java construct 
mgr100 = g.query().has("mgrNo",CONTAINS_PREFIX,"100").vertices().toList()
mgr200 = g.query().has("mgrNo",CONTAINS_PREFIX,"200").vertices().toList()

mgr100.each {
    mgr200.findAll{x -> x.location == it.location}.each{x -> it.addEdge('near', x)}
}

请注意在CONTAINS_PREFIX周围使用一些特定于Titan的语法。虽然您可能会尝试将此代码转换为Gremlin Pipeline,但我并不确定它会比这更具可读性。