加载时出现 Neo4j-2.2.0-M03 NotInTransactionException

Neo4j-2.2.0-M03 NotInTransactionException while loading

出于开发目的,我尝试将数据上传到 neo4j-community-2.2.0-M03。使用 shell 和密码脚本从多个 CSV 文件上传。使用与成功将数据上传到 neo4j-2.1.7 完全相同的脚本。 Neo4j 2.1.7 在 9 分钟内上传了 201589 个节点和 2163494 个边。

Neo4j-2.2.0-M03 正确上传前三种类型的节点(26k 节点)但因此无法上传最后两个文件,返回:"NotInTransactionException: The statement has been closed.".

密码命令如下:

CREATE INDEX ON :Fingerprint(Code);
CREATE INDEX ON :Fingerprint(Size);
USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM 'mypath_to_file.csv' 
  as csvLine FIELDTERMINATOR '\t' 
MATCH (m:Molecule {NSC: toInt(csvLine.NSC)}) 
MERGE (f:Fingerprint {Code: toInt(csvLine.Identifier), Size: toInt(csvLine.Distance)}) 
CREATE (m)-[:hasBit {Type: 'SCFP6', Atoms: csvLine.Atoms}]-> (f);

cvs 文件中的数据如下所示:

NSC Identifier  Distance    Atoms   Substructure
128 1   0   1   [*]C(=[*])[*]
128 0   0   2   [*]C
128 13  0   3   [*]=O
128 9   0   4   [*]N([*])[*]
128 3   0   5   [*][c](:[*]):[*]
128 17  0   12  [*]S[*]
128 1256995004  2   1 2 3 4 [*]N([*])C(=O)C
128 136627117   2   1 2 [*]C(=[*])C
128 1311071855  2   1 3 [*]C(=O)[*]

从 v2.1.7 到 2.2.0-M03 在 CSV 数据上传方面有什么变化吗?这是已知错误吗?

如果您需要示例文件和脚本的附加信息,请不要犹豫。

你能不能试试看:

LOAD CSV WITH HEADERS FROM 'mypath_to_file.csv' 
  as csvLine FIELDTERMINATOR '\t' 
RETURN count(*);

LOAD CSV WITH HEADERS FROM 'mypath_to_file.csv' 
  as csvLine FIELDTERMINATOR '\t' 
RETURN csvLine
SKIP 25900;

查看数据或解析是否有问题?可能在回滚事务的解析过程中发生异常?

我会将您的 MERGE 更改为:

   MERGE (f:Fingerprint {Code: toInt(csvLine.Identifier)})
     ON CREATE SET f.Size=toInt(csvLine.Distance)

问题已在 neo4j 2.2.0-RC01 中得到解决。 3 分钟内满载 20158 个节点和 2163494 条边,而使用 neo4j 2.1.7 则需要 9 分钟。