在neo4j-shell的转储上重置节点计数器

特尔莫骑兵

我正在运行两个不同的Neo4j服务器,并以相同的顺序在它们上运行相同的查询。

我想检查两个数据库是否等效,为此,我正在生成整个数据库的转储(并且我确实意识到这不是大型数据库的真正替代品),bin/neo4j-shell -c "dump" > /home/my_user/dump.txt并且他们将生成的md5哈希值进行了比较md5sum dump.txt

生成的dump.txt文件看起来几乎相同,除了用于标识节点的变量有时不同之外,这些变量当然会为每个文件生成完全不同的哈希。例子:

dump.txt#1

begin
commit
begin
create (_6:`Person` {`name`:"Arthur", `title`:"King"})
create (_7:`Person` {`name`:"Saladin", `title`:"Sultan"})
create (_8:`Army` {`name`:"Saxon army"})
create (_6)-[:`FIGHTS_AGAINST`]->(_8)
create (_7)-[:`LEADS`]->(_8)
;
commit

dump.txt#2

begin
commit
begin
create (_7:`Person` {`name`:"Arthur", `title`:"King"})
create (_8:`Person` {`name`:"Saladin", `title`:"Sultan"})
create (_9:`Army` {`name`:"Saxon army"})
create (_7)-[:`FIGHTS_AGAINST`]->(_9)
create (_8)-[:`LEADS`]->(_9)
;
commit

我猜现在它可以根据数据库到目前为止拥有的节点数来工作,而当我使用MATCH (n) DETACH DELETE n它进行清理时,它不会重置此计数器。我发现重置它的唯一方法是通过重新启动服务器,这并不完全实用。

我猜想解决问题的最简单方法是编写一个脚本,以删除所有以_开头的数字,但是在非常特殊的情况下,它不会产生假阳性吗?就像查询的位置非常相似且顺序相同但更新了不同的节点一样。

有谁有更好的选择?也许是一个命令来重置此节点计数器?

特尔莫骑兵

最终在Bash上使用正则表达式来达到从文件中删除所有节点标识符的预期结果。

cat dump.txt | sed s/\(_[0-9]*/\(/g > dump_new.txt

dump.txt这样一个:

begin
commit
begin
create (_18:`Person` {`name`:"Arthur", `title`:"King"})
create (_19:`Person` {`name`:"Saladin", `title`:"Sultan"})
create (_20:`Army` {`name`:"Saxon army"})
create (_18)-[:`FIGHTS_AGAINST`]->(_20)
create (_19)-[:`LEADS`]->(_20)
;
commit

生成dump_new.txt这样的一个:

begin
commit
begin
create (:`Person` {`name`:"Arthur", `title`:"King"})
create (:`Person` {`name`:"Saladin", `title`:"Sultan"})
create (:`Army` {`name`:"Saxon army"})
create ()-[:`FIGHTS_AGAINST`]->()
create ()-[:`LEADS`]->()
;
commit

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

加载Neo4j数据库转储(neo4j-shell)

来自分类Dev

Neo4j在何处查找转储数据(使用Neo4j Shell中的dump命令)

来自分类Dev

选择随机节点neo4j

来自分类Dev

Neo4J:避免重复节点

来自分类Dev

迭代neo4j中的节点

来自分类Dev

从转储中获取 Neo4j 版本

来自分类Dev

在Java中将Neo4j Shell连接到嵌入式Neo4j

来自分类Dev

在Neo4J的节点上设置默认标签

来自分类Dev

在现有节点上创建索引-Neo4J

来自分类Dev

在现有节点上创建索引-Neo4J

来自分类Dev

Neo4j 在多个节点上获得匹配总和

来自分类Dev

Neo4j删除节点并返回删除的节点

来自分类Dev

neo4j将节点转换为节点列表

来自分类Dev

Neo4J从路径中的节点获取节点

来自分类Dev

显示从节点到节点Neo4j的关系

来自分类Dev

所有节点子节点的 Neo4j 密码

来自分类Dev

在neo4j 2.3.1上安装neo4j-spatial

来自分类Dev

neo4j 上的未知函数“org.neo4j.examples.join”

来自分类Dev

如何在Neo4j中汇总关系计数

来自分类Dev

neo4j cypher如何消除计数重复

来自分类Dev

Neo4j计数朋友的朋友出现

来自分类Dev

Neo4j中的联合和计数集合

来自分类Dev

如何在Neo4j中汇总关系计数

来自分类Dev

Neo4j密码的计数和操作

来自分类Dev

Neo4j 密码查询返回不同的计数结果

来自分类Dev

多标签节点的最佳Neo4j索引策略

来自分类Dev

节点将不会持续到Neo4j

来自分类Dev

无法删除neo4j中的节点标签

来自分类Dev

计算neo4j中的节点深度