Neo4j创造了关系

时间:2015-02-10 14:20:20

标签: neo4j

我有两个导入neo4j的csv文件:uniq_namesall_names。我在uniq_names文件中有一列和大约5000行,我有三列:nameid1id2 all_names大约有300,000行 MATCH (a:uniq_names),(b:all_names) WHERE a.name=b.name AND b.id1<>b.id2 CREATE (a)-[:child]->(b); 1}}文件。 现在我正在尝试与下面的代码建立关系:

{{1}}

当我执行它认为大约20分钟的代码但返回:“0行返回”结果,并且它没有创建任何关系。当我在all_names文件中有1000行和50行时,它完美地运行uniq_names文件 我有windows 7 64bit,jdk 1.7.0_71,neo4j 2.1.6企业。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

该查询基本上会创建一个5k uniq_names和300k all_names的交叉产品,因此15亿次操作 - 效率不高。

优化:

创建索引:CREATE INDEX ON :all_names(name)。然后首先遍历所有uniq_names并通过索引查找找到相应的all_names,检查id条件并创建关系:

MATCH (a:uniq_names) 
WITH a
MATCH (b:all_names {name: a.name})
WHERE b.id1<>b.id2
CREATE (a)-[:child]->(b);