识别节点类型

时间:2013-03-08 16:25:47

标签: neo4j

我有许多不同类型的节点,我指的是具有不同属性的节点。例如,我有许多节点,他们拥有的只是fileName和uploadDate的属性。如果我想检查所有文件名,我只需要做

START n=node(*) WHERE has(n.File) RETURN n;

这是最佳做法(即查询扁平数据库)。谢谢!

1 个答案:

答案 0 :(得分:4)

您的查询扫描所有节点,随着数据集的增长,这将变慢。

为了识别某种类型的节点,有两种常见的方法:

类型属性

使用描述您的类型的值设置名为“type”(或“_type_”f.e。如果您希望将其标记为系统属性)的属性,例如'文件'。

然后你可以通过这样的索引查找节点:

start n=node:node_auto_index(type='File') return n;

输入节点

将某种类型的节点连接到“类型”节点并查询关系:

start type_node=node:node_auto_index(name='File')
match type_node<-[:IS_A]-file
return file;

(此页面上的啤酒图http://www.neo4j.org/learn/try就是一个例子。)