3

Neo4j已推出labels自版本2.0。从他们自己对该功能的解释来看,标签旨在将节点分组为命名集。

我一直在玩这个选项,似乎除了这样做之外别无他法how many nodes are labelled with Foo

match n:Foo return count(n);

问题是在大型集上,此操作非常缓慢。例如,在640K节点标记为 'Foo的数据库上,查询运行大约 50 秒。

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

还有一个相关的问题:Neo4j就过滤速度而言,标签是否已编入索引,或者默认情况下它们是否类似于任何其他非索引属性?

4

1 回答 1

0

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

Neo4j 为每个标签类型创建一个独立的索引。每个创建的索引都是一个完整的 Lucene 索引。由于它是 Lucene 索引,您可以使用 Lucence API 以只读模式打开索引并使用其 numDocs 方法

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

于 2013-07-08T13:15:51.633 回答