Nebula怎么实现gremlin的g.E()的效果?

Nebula怎么实现gremlin的g.E()的效果?
就是一下查询出当前图空间下的所有实体和关系行成一个图谱?

需要先指定边类型,并构建索引。

前提是你的边数据不是悬挂边,如果是悬挂边就没法实现g.E()的效果了。
示例: tag:node,edgeType:relation.

  1. 对点建索引: 对node 某一属性建立了索引
  2. 执行: match (v:node) -[e:relation] -> () return e

如果你想对查询的数据做处理,你可以用storageClient的scan接口。

1 个赞

gremlin 对于悬挂边有要求吗?

tinkerpop是双向邻接表,不存在无点边

这是Tinkerpop要求规定的,还是某个具体实现(比如JanusGraph)?

设计思想就是,整个structure接口也是的。graph 只有 addVertex,vertex.addEdge(String, Vertex,…),添加边就是要两个点。所以图结构很严谨。

janusgraph实现也是的,类bigtable kcv一个row就是一个点,包含了所有邻接边和属性。

我不知道华为底层是怎么弄得,不过字节底层用的是kv存储,基本形式是 点作为key,所有边在value里。那也是邻接表。

1 个赞

:+1:

如果用rowkey 方式实现,天然就比较容易保证

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。