泰坦:哪种方法很好

时间:2014-03-07 17:45:58

标签: titan

想想一个简单的场景:

用户发布的每篇帖子都有5个标签。现在我可以通过两种方式处理它:

  1. 为每个标记创建单独的顶点,并使用post vertex

    附加它
     postVertex -------- [hastag] ------------> tagNameVertex
    
  2. 将属性添加到postVertex说'hasTag'

     postVertex[hasTag:tagName]
    
  3. 在按标签搜索帖子的情况下哪种方法很好。我想的是,如果1000个用户使用5个不同的标签,那么将只有5000个标签顶点,但在第二种情况下没有新的标签顶点,只是后顶点将使用属性hasTag处理它。

    我们可以使用has()基于标签进行搜索,因此我认为第二种方法会很好。正确?

1 个答案:

答案 0 :(得分:1)

我做的不同。

假设我有一个包含tag1,tag2和tag4的博客。

tag1 = 1 = pow(2, 0);
tag2 = 2 = pow(2, 1);
tag3 = 4 = pow(2, 2);
tag4 = 8 = pow(2, 3);

我将创建一个带有属性标签的顶点,其值为:11(= 1 + 2 + 8)

当我过滤tag2(value = 2)时,我只需要进行二元操作(2& blog-vertex.tags)。

但是存在限制:标签数量应小于1024(在大多数系统中)。

根据您的解决方案,我认为当您拥有大图时,has()可能效率不高。