【问题标题】:How to query multiple vertexes' common tail vertex in titan?如何在titan中查询多个顶点的公共尾顶点?
【发布时间】:2017-07-10 13:06:43
【问题描述】:

在图中,有3个顶点A、B、C,它们都用边E连接到顶点D。现在我有A B C,如何用gremlin查询来查询它们的共同尾顶点D?

【问题讨论】:

    标签: graph titan gremlin


    【解决方案1】:

    这是一种可行的方法 - 请注意,我添加了一个与 A、B 和 C 不同的 E 顶点:

    gremlin> g.addV(id,'A').as('a').
    ......1>   addV(id,'B').as('b').
    ......2>   addV(id,'C').as('c').
    ......3>   addV(id,'D').as('d').
    ......4>   addV(id,'E').as('e').
    ......5>   addE('knows').from('d').to('a').
    ......6>   addE('knows').from('d').to('b').
    ......7>   addE('knows').from('d').to('c').
    ......8>   addE('knows').from('e').to('a').
    ......9>   addE('knows').from('e').to('c').iterate()
    gremlin> ids = ['A','B','C']
    ==>A
    ==>B
    ==>C
    gremlin> g.V(ids).in().
    ......1>   where(out().id().fold().order().is(eq(ids))).
    ......2>   dedup()
    ==>v[D]
    

    where() 基本上遍历到头顶点并将它们收集到标识符列表中,然后可以将其与我们用于开始遍历的原始标识符列表进行比较。请注意,我们依赖标识符 order() 来确保列表的相等性:

    gremlin> ['A','B','C'] == ['A','C','B']
    ==>false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多