在从电子表格导入大量数据时,我尝试使用标签约定,其中节点大写,如“This”,关系标签标记为“THIS”。在一个例子中,我不小心对一组节点使用了关系标签格式。然后我删除了这些节点并使用正确的标签格式重新导入它们。 (附带问题 - 有没有办法重命名我没有看到的标签,从而避免删除/重新导入?)
我的问题是,在内置的 Cypher 浏览器(Neo4j 2.1.3)中,正确和错误的标签都会显示在节点列表上,即使有零个节点带有错误的标签。因此,虽然我成功删除了节点,但我不知道如何删除标签 - 不是从节点中删除标签,使用 REMOVE 命令这很容易,而是完全从数据库中删除。当分配给它的项目达到零时,为什么它没有自动删除这个标签?
更具体地说,我可以单击 MEASURES 的节点标签,然后会触发以下查询:
MATCH (n:`MEASURES`) RETURN n LIMIT 25
结果如下:
Returned 0 rows in 77 ms
我想从数据库中完全删除标签“MEASURES”,因为没有任何东西使用它。如果您需要更多信息,请告诉我。
我认为还没有一种内置方法可以从 neo4j 数据库中完全删除不再使用的标签。我还对 Neo4j 浏览器 Web UI 等地方仍然出现过时的标签感到恼火。
我知道一种删除它们的方法,但如果您的数据库很大,那么它可能不切实际,并且它might并不完全安全。因此,如果您选择执行以下操作,则应确保备份原始数据库(例如,应复制原始数据库)graph.db
文件夹或重命名)。
该技术实际上非常简单。你只需导出所有数据,关闭neo4j,删除或重命名原来的graph.db
文件,重新启动neo4j,然后重新导入数据。以下步骤假设您位于 Linux 环境中的 Neo4j 安装文件夹中,并且 Neo4j 未作为服务运行。
-
导出数据(作为将重新创建数据的 CYPHER 语句):
./bin/neo4j-shell -c "dump" > mydump.cql
-
关闭 neo4j(因为删除或重命名是不安全的graph.db
当数据库运行时):
./bin/neo4j 停止
-
重命名当前的graph.db
文件夹,以防万一您需要替换下面创建的新文件夹:
mv 数据/graph.db 数据/graph.db.archive
-
重启neo4j,会自动创建一个新的graph.db
folder:
./bin/neo4j 启动
-
从转储中重新导入数据:
./bin/neo4j-shell -文件 mydump.cql
此时,过时的标签应该从任何地方消失(您应该重新加载所有 neo4j 网页)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)