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

Apache AGE源码中如何通过图名访问顶点/边信息?

在Apache AGE源码中通过图名访问顶点/边信息的方法

第一步:通过图名获取图的OID

Apache AGE中所有图对象都对应一个OID(对象标识符),源码层面的操作大多基于OID展开。你可以调用get_graph_oid(const char *graph_name)函数(定义在src/backend/utils/adt/age_graph.c),传入图名字符串即可得到对应图的OID,后续所有顶点/边的操作都依赖这个OID。

第二步:获取顶点信息

已知顶点graphid的情况

  • graphid:顶点的Vertex结构体直接包含id字段(类型为graphid),可直接读取。
  • 标签:调用get_vertex_label(graphid vertex_id, Oid graph_oid),传入顶点graphid和图OID,返回顶点的标签字符串。
  • 属性:调用get_vertex_properties(graphid vertex_id, Oid graph_oid),返回List*类型的属性键值对列表,遍历列表即可提取每个属性的名称与值。

遍历图中所有顶点

如果需要访问任意顶点(无特定graphid),可使用scan_all_vertices(Oid graph_oid)函数,它会返回一个包含所有Vertex结构体的迭代器,逐个处理迭代器中的顶点即可获取所需信息。

第三步:获取边信息

操作逻辑与顶点类似:

已知边graphid的情况

  • graphid:边的Edge结构体包含id字段(类型为graphid),直接读取即可。
  • 标签:调用get_edge_label(graphid edge_id, Oid graph_oid)获取边的标签字符串。
  • 属性:调用get_edge_properties(graphid edge_id, Oid graph_oid)返回边的属性键值对列表。

遍历图中所有边

使用scan_all_edges(Oid graph_oid)函数获取所有边的迭代器,逐个处理边结构体即可。

注意事项

  • 调用get_graph_oid时需处理图不存在的情况(函数会返回无效OID)。
  • 确保所有graphid属于目标图,避免跨图访问引发错误。
  • 操作时需保证数据库连接上下文正确,避免因环境问题导致函数调用失败。

内容的提问来源于stack exchange,提问作者Marco Souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:57:16