我想通过使用类似搜索来过滤两组顶点,然后我想在这些顶点之间添加边缘,如果属性,例如。 location
匹配。
第1步:使用mgrNo进行搜索,例如以100开头
第2步: 喜欢使用mgrNo搜索,例如以200
第3步:添加边缘
如果属性说明,则在步骤1和2生成的顶点之间
例如。顶点A和顶点B的location
匹配。
我想知道如何使用gremlinPipeLine
答案 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,但我并不确定它会比这更具可读性。