如何从neo4j cypher错误中恢复:Neo.ClientError.Statement.EntityNotFound

时间:2015-06-03 18:52:26

标签: database neo4j cypher corruption

我还在Neo4j GITHUB上发布了这个问题,这可能不是正确的地方,我现在正在这里交叉发帖寻求帮助。

由于内存不足,我遇到了几个neo4j服务器崩溃,我认为这使我的数据库处于损坏状态。基本上,Cypher的Web条目认为数据库已被拔掉,而且我必须强有力地使用Neo4j社区应用程序,该应用程序已经无响应。最终我进入了一个涉及某些节点(:SNP)的大多数大型查询都会出错的状态。例如

match (s:SNP)-[r]-() where s.name > 'rs55' delete r, s
Node with id 15244864
Neo.ClientError.Statement.EntityNotFound

OR

match (s:SNP)-[r]-() where s.name< 'rs55' delete r, s
Node with id 15244864
Neo.ClientError.Statement.EntityNotFound

或者甚至

match (s:SNP) return count(s)
Node with id 15244864
Neo.ClientError.Statement.EntityNotFound

我搜索了“Neo.ClientError.Statement.EntityNotFound”并尝试了那里找到的已接受答案的建议。

删除架构/标签并重新启动服务器没有帮助。

我也尝试过重建索引:SNP(名称),然而,索引没有完全填充,架构命令说索引失败

 ON :SNP(name)               FAILED  

除了java堆错误之外,我没有在neo4j.0.0.log或console.log或messages.log中看到任何提及。

如果有人建议如何删除所有SNP(我可以重新加载)或以其他方式恢复而不重新加载大量其他现有数据,请告诉我。

1 个答案:

答案 0 :(得分:0)

我首先尝试删除架构标签存储,这将在db restart

重新创建
  • 关闭数据库
  • 转到您的neo4j目录
  • base
  • cd data/graph.db
  • 重启Neo4j

第二种解决方案:使用shell工具将数据库复制并修复到另一个商店目录。

请参阅https://github.com/jexp/store-utils