比如tag1中vid有个1,tag2的vid还能否为1呢?
是全局唯一的
你可以理解为 VID 是你的身份证是独一无二的,tag 只是你的一些属性,例如性别和年龄,所以正确的描述是 vid 1 的 tag1,vid 2 的 tag2
所以edge vid1->vid2
vid1关联的所有tag(可能有多个)都会指向vid2关联的所有tag是吗
vid1->vid2 指的是 vid 指向 vid 存在一条关系(relationship / edge)啦,例如上图中的认识关系,这个关系(edge)也有对应的 id 就是 edgetype,2 个点可以有多种 edge,所以你说的 tag 指向 tag 是不存在的,
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。
了解了
https://github.com/vesoft-inc/nebula-docs-cn/pull/68
您好,这个我们文档里面有写的,但是可能不太明显,所以我在相关文档中都强调了一下。我下周会出一集视频专门讲解nebula建模这块内容,欢迎持续关注~~
rank 确实还有些晕,比如连续插入两条相同的边 (rank没指定的话默认为0),控制台显示插入成功,实际是被覆盖了么,只插入一条?
是的, 后面的把前面的覆盖了。