无法通过批量导入导入Neo4J

时间:2013-12-17 11:23:49

标签: neo4j

我正在尝试使用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

还有其他人有这个问题吗? 感谢。

3 个答案:

答案 0 :(得分:1)

您能显示文件标题吗?

如您所见,您只导入了271544个节点。因此,没有一个节点具有node-id 271565

关系文件中的id是指nodes-file中的行号,而不是您自己的“id”列中的行号(如何知道)。

你唯一能做的就是使用id:id这是一种特殊的类型,并强制neo4j-id与你提供的id相对应。在关系文件中使用start:idend: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