【问题标题】:How to avoid duplicate edge between two vertices in Gremlin apache Tinker pop?如何避免 Gremlin apache Tinkerpop 中两个顶点之间的重复边缘?
【发布时间】:2021-06-17 06:28:02
【问题描述】:

如何避免Gremlin apache Tinker pop中的两个顶点之间出现重复的edge

A ->(has) -> B

具有相同标签HAS 的边不应重复。

【问题讨论】:

    标签: graph gremlin tinkerpop


    【解决方案1】:

    确保唯一性的一种简单方法是为每条边使用一个复合 ID,该 ID 由源顶点 ID、边标签和目标顶点 ID 组成。这将确保尝试在具有相同标签的两个顶点之间添加另一条边会引发错误(因为 TinkerPop 中的每个顶点和边都必须具有唯一的 ID)。

    gremlin> g.addV('vertex').property(id,'v1').as('a').
    ... addV('vertex').property(id,'v2').as('b').
    ... addE('HAS').property(id,'v1-HAS-v2').from('a').to('b')
    ==>e[v1-HAS-v2][v1-HAS->v2]
    
    gremlin> g.addE('HAS').property(id,'v1-HAS-v2').from(V('v1')).to(V('v2'))
    Edge with id already exists: v1-HAS-v2
    Type ':help' or ':h' for help.
    Display stack trace? [yN]N
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2019-05-14
      相关资源
      最近更新 更多