两个 属性 值的唯一组合

Unique combinations of two property values

对于给定的顶点,我试图获取两个边属性的唯一组合的数量,但我不确定从哪里开始。

例如,假设顶点 147672 的边都具有属性 P1,并且 P2.

这些边可能具有以下 属性 值:[(A, B), (B, A), (B, A), (A, C), (C, A), (C,A)'].

那么P1P2的值的唯一组合就是[(A, B), (B, A), (A, C), (C, A)'],长度就是四。

我构建了一个图表,希望能代表您上面描述的内容,以及一个查找配对的查询。

g.addV('V1').as('a').
  addV('V2').as('b').
  addE('edge').from('a').to('b').property('p1','A').property('p2','B').
  addE('edge').from('a').to('b').property('p1','A').property('p2','B').
  addE('edge').from('a').to('b').property('p1','A').property('p2','C').
  addE('edge').from('a').to('b').property('p1','C').property('p2','A').
  addE('edge').from('a').to('b').property('p1','C').property('p2','B').
  iterate()    
gremlin> g.V().hasLabel('V1').outE()
==>e[2][0-edge->1]
==>e[3][0-edge->1]
==>e[4][0-edge->1]
==>e[5][0-edge->1]
==>e[6][0-edge->1]

gremlin> g.V().hasLabel('V1').outE().local(values('p1','p2').fold())
==>[A,B]
==>[A,B]
==>[A,C]
==>[C,A]
==>[C,B]

gremlin> g.V().hasLabel('V1').outE().local(values('p1','p2').fold()).dedup()
==>[A,B]
==>[A,C]
==>[C,A]
==>[C,B]