我使用Titan Graph Database(0.4.1版本)。我有一个有向图,我试图找到一个节点的邻居。我使用GremlinPipeLine和以下代码:
GremlinPipeline<String, Vertex> pipe = new GremlinPipeline<String, Vertex>(vertex).both("similar");
我认为这是因为如果我有一个有向图的边缘列表
1 32
32 1
上述函数返回节点32两次。有没有办法用GremlinPipeline过滤这个或者我应该手动完成吗?
P.S。找到节点的邻居的任何其他方式也被接受。
答案 0 :(得分:0)
您可以使用dedup
和地图来执行某种Gremlin DISTINCT
- 就像等效查询一样:
GremlinPipeline<String, Vertex> pipe = new GremlinPipeline<String, Vertex>(vertex).both("similar").dedup(new PipeFunction<Vertex,String>() {
public String compute(Vertex vertex) {
return vertex.id;
}
}).back(1);
最后一个返回给你的both
调用应该有同样的结果。