Nebula怎么实现gremlin的g.E()的效果?
就是一下查询出当前图空间下的所有实体和关系行成一个图谱?
需要先指定边类型,并构建索引。
前提是你的边数据不是悬挂边,如果是悬挂边就没法实现g.E()的效果了。
示例: tag:node,edgeType:relation.
- 对点建索引: 对node 某一属性建立了索引
- 执行:
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 个赞
如果用rowkey 方式实现,天然就比较容易保证
此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。