Neo4j计数不同节点返回的节点数超过总数

时间:2019-05-16 13:19:32

标签: neo4j cypher

我试图计算图中没有发生特定关系的所有节点。

我的图形中有1816个节点。

当我运行以下查询时:

MATCH (n1)-[r]->(n2)
WHERE NOT (n1)-[:wikipedia]->(n2)
RETURN count(distinct n1)

或者:

MATCH (n)-[r]->()
WHERE NOT type(r)='wikipedia'
RETURN count(distinct n)

我得到:2202

甚至超过节点数!

怎么了?

Neo4j版本3.5.1

1 个答案:

答案 0 :(得分:0)

您发现与一致性检查不一致的事实意味着您的Neo4j数据库已损坏。您应该做的第一件事是先将其离线,然后back it up,然后再尝试进行任何还原/修复。

备份完成后,可以尝试删除“ neostore.counts.db。*”文件以强制Neo4j重建它们,但是我不建议这样做,因为根据Neo4j的定义,该状态为无效状态无法知道有多少实际损坏(损坏的节点,没有损坏的节点)。我建议要么从旧的备份(如果有)中恢复,要么使用store-utils之类的恢复工具来重建整个数据库,而丢弃所有无效的节点/关系。