我正在使用Titan使用JAVA。我有以下情况:
有帖子顶点,很多用户在这个帖子上写评论,同一个用户可以在帖子上发表多条评论。
U(email, name, sex)
我需要做的是,如果发布任何新评论,我必须向所有评论者发送通知。
现在问题是如何过滤用户,即如果有
这样的情况U1 ------COMMENTED ----------> POST
U2 ------COMMENTED ----------> POST
U3 ------COMMENTED ----------> POST
U1 ------COMMENTED ----------> POST
如果发布了新评论,则应将通知发送至U1
U2
U3
。现在,如果我遍历传入边COMMENTED
,它会两次获取U1
。但我只需要U1
一次只是为了收到他们的电子邮件。我怎样才能实现
答案 0 :(得分:2)
我知道您的问题是关于Java的,但下面的Gremlin Groovy会话演示了这种方法。一种方法是使用dedup
步骤。
http://gremlindocs.com/#filter/dedup
这将确保U1
仅在该步骤之后存在一次,如下所示:
gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.V.out.in
==>v[4]
==>v[6]
==>v[1]
==>v[1]
==>v[1]
==>v[4]
==>v[6]
==>v[1]
==>v[4]
==>v[4]
==>v[6]
==>v[1]
gremlin> g.V.out.in.dedup
==>v[4]
==>v[6]
==>v[1]
或者,您可以将所有用户都写入Set
:
gremlin> x = [] as Set
gremlin> g.V.out.in.fill(x);null
==>null
gremlin> x
==>v[4]
==>v[6]
==>v[1]