我试图创建一个大约2700万个关系以及1500万个节点,最初我使用的是Cypher,但这花费了很多时间,所以我切换了neo4j-import工具实用程序。
我对cypher查询的结果是否与neo4j-import的结果相同感到困惑。
我的Cypher查询是:
load csv from "file://dataframe6.txt" as line fieldterminator" "
MERGE (A :concept{name:line[0]})
WITH line, A
MERGE (B :concept{name:line[1]})
WITH B,A
MERGE (A)-[:test]->(B);
dataframe6中的内容:
C0000005,C0036775,RB_
C0000039,C0000039,SY_sort_version_of
C0000039,C0000039,SY_entry_version_of
C0000039,C0000039,SY_permuted_term_of
C0000039,C0001555,AQ_
C0000039,C0001688,AQ_
我的neo4j-import脚本:
neo4j-import --into graph.db --nodes:concept "nheader,MRREL-nodes" --relationships "rheader,MRREL-relations" --skip-duplicate-node true
rheader :: START_ID,:END_ID,:TYPE
nheader :: ID,name
MRREL节点:
C0000005,C0000005
C0000039,C0000039
C0000052,C0000052
C0036775,C0036775
C0001555,C0001555
MRREL-关系
C0000005,C0036775,RB_
C0000039,C0000039,SY_sort_version_of
C0000039,C0000039,SY_entry_version_of
C0000039,C0000039,SY_permuted_term_of
C0000039,C0001555,AQ_
C0000039,C0001688,AQ_
不知怎的,我没有看到相同的结果
答案 0 :(得分:2)
[EDITED]
如果您希望您的关系具有动态分配的类型,那么您需要更改Cypher代码以使用line[2]
来指定关系类型(例如,通过APOC过程{{3} })。它目前始终使用test
作为类型。
相反,如果您确实希望neo4j-import
导入的所有关系具有相同的test
类型,则需要使用apoc.create.relationship。
尝试删除",:TYPE"来自rheader
,并使用此导入命令行(--relationships
已更改为--relationships:test
):
neo4j-import --into graph.db --nodes:concept "nheader,MRREL-nodes" --relationships:test "rheader,MRREL-relations" --skip-duplicate-node true