我们正在开发一个基于neo4j和php的应用程序,其中包含大约200 k节点,每个节点都有一个属性(如type='user'或type='company' )来表示应用程序的特定实体。我们需要得到图中特定类型的所有节点的计数。
我们为每个实体创建了一个索引,比如保存该属性节点的users,companies。因此,在users索引中驻留130 K节点,其余位于companies上。
有了塞弗,我们就这样犹豫了。
START u=node:users('id:*')
RETURN count(u)结果是
Returned 1 row.Query took 4080ms服务器被配置为默认配置,只需稍作调整,但4秒也不能满足我们的需要。考虑到数据库将在一个月内增长到20K,所以我们非常需要这个查询。
还有其他方法可以做到这一点吗?也许是用Gremlin,还是用其他服务器插件?我将缓存这些结果,但我想知道是否可以修改这些结果。
非常感谢,为我糟糕的英语感到难过。
发布于 2012-10-24 03:41:48
最后,用Gremlin而不是Cypher,我找到了解决方案。
g.getRawGraph().index().forNodes('NAME_OF_USERS_INDEX').query(
new org.neo4j.index.lucene.QueryContext('*')
).size()此方法使用lucene索引获取“接近”行。
再次感谢大家。
https://stackoverflow.com/questions/11782197
复制相似问题