vid是在整个图空间中唯一,还是在一类tag上唯一呢

比如tag1中vid有个1,tag2的vid还能否为1呢?

是全局唯一的

你可以理解为 VID 是你的身份证是独一无二的,tag 只是你的一些属性,例如性别和年龄,所以正确的描述是 vid 1 的 tag1,vid 2 的 tag2 :blush:

所以edge vid1->vid2
vid1关联的所有tag(可能有多个)都会指向vid2关联的所有tag是吗

vid1->vid2 指的是 vid 指向 vid 存在一条关系(relationship / edge)啦,例如上图中的认识关系,这个关系(edge)也有对应的 id 就是 edgetype,2 个点可以有多种 edge,所以你说的 tag 指向 tag 是不存在的,:joy:

Vid是graph中一个点的唯一标示,tag是对一个点描述的属性集合,点和点之间的关系通过edge(边)确定。同时如tag一样,边上也可以附加属性集合,属性集合称作Edge。
举个例子更容易理解,例如有一个人,我们把他当作一个点,那这个VID就是这个人的唯一标示,例如这个人有两个身份:“学生” 和 “粉丝” 。那么相对应的tag也有两个:

  • create tag 学生(系,班级,社团)
  • create tag 粉丝(关注对象,关注开始时间,媒介类别)

由上边的例子可知,一个vId可以关联多个tag,例如

  • Tom(Vid1)学生(TagId1) : 计算机系_1班 篮球
  • Tom(Vid1)_粉丝(TagId2) : 老罗_2020-1_B站

再来解释一下点和点之间的关系,点和点之间的关系用Edge来描述,例如有两个点 :

  • Tom(Vid1)学生(TagId1) : 计算机系_1班 篮球
  • Jack(Vid2)_学生(TagId1) : 财经系_2班_柔道
  • Tom(Vid1)_粉丝(TagId2) : 老罗_2020-1_B站
  • Jack(Vid2)_粉丝(TagId2) : 老罗_2021-1_B站
    这两个人可能是老乡,也可能是同一个人的粉丝,那建立他们的关系如下

create Edge 关系 (老乡)
create Edge 关注推荐(关注对象)

关系如下:
Tom(Vid1) → 老乡(Edge 关系)-> Jack(Vid2)
Jack(Vid2) → 推荐老罗(Edge 关注推荐)-> Tom(Vid1)

由例子可知,Vid1指向Vid2并不是由Tag决定,而是由Edge决定。所以关于“vid1关联的所有tag(可能有多个)都会指向vid2关联的所有tag是吗”这个问题,可以理解为点通过Edge搜索其有关系的目标点,寻找到目标顶点后,可以通过目标顶点的Vid再进一步查看其相关的Tag。

2 个赞

了解了

@Amber 帮忙写个文档和录制个短视频吧
TAG这个概念确实让人很难理解
第二个让人难以理解的名词就是rank

https://github.com/vesoft-inc/nebula-docs-cn/pull/68
您好,这个我们文档里面有写的,但是可能不太明显,所以我在相关文档中都强调了一下。我下周会出一集视频专门讲解nebula建模这块内容,欢迎持续关注~~

1 个赞

rank 确实还有些晕,比如连续插入两条相同的边 (rank没指定的话默认为0),控制台显示插入成功,实际是被覆盖了么,只插入一条?

是的, 后面的把前面的覆盖了。

https://docs.nebula-graph.com.cn/site/pdf/NebulaGraph-book.pdf p228

https://www.bilibili.com/video/BV1Q5411K7Gg?from=search&seid=14453699948826849457