我正在尝试使用batch-import将SQLite3数据库导入Neo4J。作为Neo4J菜鸟,我跟随Max De Marzi的帖子:Batch Importer – Part 2。
我收到此错误:
# java -server -Xmx2G -jar /opt/batch-import/target/batch-import-jar-with-dependencies.jar /var/lib/neo4j/data/graph.db nodes.csv relations.csv
Usage: Importer data/dir nodes.csv relationships.csv [node_index node-index-name fulltext|exact nodes_index.csv rel_index rel-index-name fulltext|exact rels_index.csv ....]
Using: Importer /var/lib/neo4j/data/graph.db nodes.csv relations.csv
Using Existing Configuration File
..
Importing 271544 Nodes took 2 seconds
Total import time: 4 seconds
Exception in thread "main" org.neo4j.graphdb.NotFoundException: id=271565
at org.neo4j.unsafe.batchinsert.BatchInserterImpl.getNodeRecord(BatchInserterImpl.java:917)
at org.neo4j.unsafe.batchinsert.BatchInserterImpl.createRelationship(BatchInserterImpl.java:471)
at org.neo4j.batchimport.Importer.importRelationships(Importer.java:136)
at org.neo4j.batchimport.Importer.doImport(Importer.java:214)
at org.neo4j.batchimport.Importer.main(Importer.java:78)
但节点存在:
$ grep ^271565 nodes.csv
271565 'la Callas' 'n_term' 0.0
还有其他人有这个问题吗? 感谢。
答案 0 :(得分:1)
您能显示文件标题吗?
如您所见,您只导入了271544
个节点。因此,没有一个节点具有node-id 271565
。
关系文件中的id是指nodes-file中的行号,而不是您自己的“id”列中的行号(如何知道)。
你唯一能做的就是使用id:id
这是一种特殊的类型,并强制neo4j-id与你提供的id相对应。在关系文件中使用start:id
,end:id
。
答案 1 :(得分:1)
您可以尝试使用其他方法将批量数据导入neo4j。
首先将数据库转换为csv文件并将其导入Gephi - 图形可视化工具。然后通过使用Gephi插件获得neo4j数据库支持,您应该能够将您的数据库(从Gephi)导出为neo4j格式。
最后,只需将导出的文件复制到适当的neo4j目录中。
要将数据库导入Gephi,您需要两个csv文件 - 一个包含所有节点,另一个包含所有关系。请遵循本教程:http://blog.neo4j.org/2013/01/fun-with-beer-and-graphs.html
从这里获取Gephi:https://gephi.org/
从此处获取插件:https://marketplace.gephi.org/plugin/neo4j-graph-database-support/
希望这有帮助。
答案 2 :(得分:0)
您可以提供输入文件进行测试吗?你在用什么分支?
我在此处发现了类似的错误:https://github.com/jexp/batch-import/issues/59