2014-05-15 2 views
0

JAVA를 사용하여 타이탄을 사용하고 있습니다. 다음과 같은 상황이 있습니다 :타이탄 : 연결된 버텍스 필터

이 게시물에 많은 사용자가 의견을 쓸 수 있습니다. 동일한 사용자가 여러 개의 의견을 게시 할 수 있습니다.

U(email, name, sex) 

내가해야 할 일은 새로운 의견이 게시되면 모든 의견 작성자에게 알림을 보내야한다는 것입니다.

이제 것은 새로운 코멘트가 게시되면 알림이 U1 U2 U3로 전송한다

U1 ------COMMENTED ----------> POST 
U2 ------COMMENTED ----------> POST 
U3 ------COMMENTED ----------> POST 
U1 ------COMMENTED ----------> POST 

같은 상황이 있다면 난 사용자에게 즉를 필터링 할 수 있습니다 방법이다. 이제 들어오는 가장자리를 반복하면 COMMENTEDU1을 두 번 가져옵니다. 하지만 난 단지 U1 한번만 자신의 이메일을 얻을 필요합니다. 어떻게 달성 할 수 있습니까?

답변

2

Java에 대한 질문을 알고 있지만 아래의 Gremlin Groovy 세션에서이 접근법을 보여줍니다. 한 가지 방법은 dedup 단계를 사용하는 것입니다. 다음과 같이 그 U1을 보장

http://gremlindocs.com/#filter/dedup

그 단계 이후에 한 번만 존재합니다

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 A :

gremlin> x = [] as Set 
gremlin> g.V.out.in.fill(x);null 
==>null 
gremlin> x 
==>v[4] 
==>v[6] 
==>v[1] 
+0

그것을 가지고 있지만, 어느 옵션도 자바 측에서 사용할 수 없다. 수동으로해야 할 것 같습니다. – manish

+2

Java에서'Dedup'을 사용할 수있는 이유는 없지만 Gremlin을 사용하고 있지는 않습니다. 'Set'은 표준 자바 컬렉션입니다. 모든 정점을 그 것에 기입하면,'Set'는 유일한 정점만을 포함하게됩니다. –

관련 문제