Cypher查询等效于neo4j-import

时间:2017-05-31 23:41:25

标签: import neo4j cypher

我试图创建一个大约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_

不知怎的,我没有看到相同的结果

1 个答案:

答案 0 :(得分:2)

[EDITED]

  1. 如果您希望您的关系具有动态分配的类型,那么您需要更改Cypher代码以使用line[2]来指定关系类型(例如,通过APOC过程{{3} })。它目前始终使用test作为类型。

  2. 相反,如果您确实希望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