nebulagraph多值属性存储

目前使用的是nebulagraph 3.6,想要存储多值属性,比如某个人,他的爱好有多个,目前nebulagraph是不支持多值属性的,其他一些可能的替代方案有:

  1. 可以用自环边,但是rank也不好确定,没法给某个属性值一个具体的rank
  2. 用悬挂边,另一个节点可以是属性名+属性值的hash,具体的值存在悬挂边上,缺点是不能用match,可以用go
  3. 用普通的边,但是删除一个属性的时候很麻烦

目前计划用方案2悬挂边,请问下各位除了不能用match,还有没有其他缺点,或者有更好的解决方案

尽量不要人为的产生悬挂边
rank你用时间戳或者自增id就好了啊,我觉得还比较简单点。

另外,你一般爱好有多少个,你的应用系统有规格吗(比如3个)?如果有的话可以默认把爱好提前定义成几个属性字段(比如3个属性)就好。

rank不太好的原因是,我们会持续不断的往图谱中写数据,可能会有重复,此时如果已有存在的,就会产生重复

另外,一个属性有多少个值这是无法确定的,很多是通过抽取进来的,无法保证抽取的准确率

你是期望把重复的直接覆盖是吗?

这个就看你判断重复的依据是什么了,如果只是起点和终点,那rank就固定一个值,如果还有其他的,那就把那个值放到rank里来。如果其他的很多,可以拼成一个,拼起来太长,可以做hash。

rank只能是long类型,也有考虑过把多个拼起来做hash转long,不过这个存在hash冲突的可能,是不是有一定风险