如何在Neo4j中实施“标签”?

时间:2015-01-19 21:19:10

标签: neo4j graph-databases

http://neo4j.com/developer/guide-data-modeling/#_labels

“标签是一个命名的图形构造,用于将节点分组为集合。”

这是一个指向一组节点的索引。这是如何运作的?对于图形数据库,您通常如何实现这一点?谢谢。

3 个答案:

答案 0 :(得分:0)

由于您知道如何使用它,您应该注意到获取给定特定标签的所有节点的速度很快。例如,搜索标签为“Person”的所有节点。应该有一个文件(或多个文件)存储每个标签的所有节点ID。因此,当您想要搜索具有特定标签的所有节点时,将访问此类文件,并返回具有此类标签的所有节点ID。

答案 1 :(得分:0)

将标签视为节点的特殊属性,允许比节点的普通属性更快的查找。它们允许您更快地过滤或分组这些节点。单个节点可以有许多标签。

标签的一般准则:

  1. 我们使用标签将实体分组在一起 - (:人),(:公司)
  2. 在实体标签上创建约束/索引,以便更快地查询

    1. 我们使用额外的标签作为更快地过滤节点的预处理方式 - (:人:专家),(:公司:VIP)
    2. 我们可以使用标签在我们的流程中标记步骤 - (:订单:ExportedToElastic),(:订单:错误)

答案 2 :(得分:-2)

Neo4j中的标签对应于关系数据库中的表格,例如gmail中的标签对应于hotmail中的文件夹。您可以查询它们并将它们编入索引。他们唯一遗漏的是一组预定义的属性。