Neo4j标签以及如何加速计算标记节点?

时间:2013-07-07 15:44:00

标签: neo4j indexing labels

Neo4j从版本labels开始引入2.0。根据他们对该功能的解释,标签用于将节点分组为命名集。

我一直在玩这个选项,似乎除了这样做之外没有办法告诉how many nodes are labelled with Foo

match n:Foo return count(n);

问题是在大型设备上,此操作非常慢。例如,在标有' 640K的{​​{1}}个节点的数据库中,查询运行大约50秒。

我希望默认情况下标签会比属性带来一些性能提升,但他们似乎并没有这样做。所以我想知道是否有办法加快标记集大小的计算?有些Foo魔法,也许?

一个相关的问题:Gremlin中的标签是否被编入索引,或者在过滤速度方面是否与默认的任何其他非索引属性相似?

1 个答案:

答案 0 :(得分:0)

由于我在Neo4j中找不到任何API,所以下面是一种方法。

Neo4j为每种标签类型创建一个独立的索引。每个创建的索引都是full Lucene index。由于它是Lucene索引,因此您可以使用Lucence API以只读模式打开索引并使用its numDocs method

以只读模式打开非常重要。

相关问题