我经常使用批量导入程序(neo4j-import
)构建和删除整个数据集,但我经常发现标签上的缓存计数是错误的。例如,MATCH (n:Label) RETURN COUNT(n)
会返回560,但MATCH (n:Label) WHERE EXISTS(n.attribute_all_nodes_have) RETURN COUNT(n)
会返回> 750,000(这是正确的数字)。
这特别成问题,因为它使某些查询非常慢。例如,MATCH (a:Label1)-[r]-(b:Label2) WITH r LIMIT 5 DELETE r
花了14秒。
删除和重建数据集有时会修复此问题,但这需要很长时间(数百万个节点)。有没有办法确定标签计数?
仅供参考我在MacOS Sierra 10.12.3上使用Neo4j 3.1.0。
答案 0 :(得分:1)
导入后的计数应该是正确的,但是如果它们不存在则总是可以关闭数据库,删除计数存储neostore.counts.db.*
并重新开始。计算将重建,但使用导入工具用于构建计数的相同功能。