You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gremlin Python中为两个已有顶点添加边?

Gremlin Python中为已存在顶点添加边的正确方式

问题原因

你遇到的空列表问题,本质是Gremlin Python客户端返回的顶点对象是本地序列化实例,并非服务器端的顶点引用。直接将本地顶点对象传入g.V()时,服务器无法识别该对象,导致遍历找不到目标顶点,自然无法创建边。

正确实现方式

方式1:通过顶点ID关联

创建顶点后提取其ID,用ID作为服务器端可识别的标识来定位顶点:

v_marko = g.add_v('person').property('name', 'Marko').next()
v_peter = g.add_v('person').property('name', 'Peter').next()

# 获取顶点的服务器端ID
marko_id = v_marko.id
peter_id = v_peter.id

# 通过ID定位顶点并添加边
edge = g.V(marko_id).addE('knows').to(g.V(peter_id)).toList()
print(edge)

方式2:同遍历链内完成创建与关联

如果是刚创建顶点就需要关联边,推荐在同一条Gremlin遍历链中用as()标签实现,避免跨请求的本地对象问题:

edge = g.add_v('person').property('name', 'Peter').as_('p2')\
        .add_v('person').property('name', 'Marko')\
        .addE('knows').to('p2').toList()
print(edge)

方式3:通过顶点属性定位

若顶点已存在,可通过唯一属性(如name)查询定位顶点,再添加边:

# 确保顶点已存在(若已创建可跳过此步)
g.add_v('person').property('name', 'Marko').toList()
g.add_v('person').property('name', 'Peter').toList()

# 通过属性匹配顶点并创建边
edge = g.V().has('person', 'name', 'Marko')\
        .addE('knows')\
        .to(g.V().has('person', 'name', 'Peter')).toList()
print(edge)

内容的提问来源于stack exchange,提问作者Tojo Cherian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:01:24