Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j “什么时候更喜欢?”;在创建集合时…“;使用加载CSV时_Neo4j - Fatal编程技术网

Neo4j “什么时候更喜欢?”;在创建集合时…“;使用加载CSV时

Neo4j “什么时候更喜欢?”;在创建集合时…“;使用加载CSV时,neo4j,Neo4j,我正在导入此表单的文件(其中HAN_ID是唯一的): 我看到了两种将“姓名”标签从“Person\u name\u clean”添加到每个发明人身上的方法,但不确定是否更加密、更高效。区别就在最后两行 // Option 1 CREATE CONSTRAINT ON (i:Inventor) ASSERT i.hanID IS UNIQUE; USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///.../201609_HAN_NAME

我正在导入此表单的文件(其中HAN_ID是唯一的):

我看到了两种将“姓名”标签从“Person\u name\u clean”添加到每个发明人身上的方法,但不确定是否更加密、更高效。区别就在最后两行

// Option 1
CREATE CONSTRAINT ON (i:Inventor) ASSERT i.hanID IS UNIQUE;
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///.../201609_HAN_NAME.txt" AS row
FIELDTERMINATOR '|'
CREATE (i:Inventor {hanID:row.HAN_ID,name:row.Person_name_clean});

//Option 2
CREATE CONSTRAINT ON (i:Inventor) ASSERT i.hanID IS UNIQUE;
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///.../201609_HAN_NAME.txt" AS row
FIELDTERMINATOR '|'
CREATE (i:Inventor {hanID:row.HAN_ID})
ON CREATE SET i.name=row.Person_name_clean;
除了我的具体情况外,我想知道是否有什么一般规则是可取的。如果有关系的话,该文件包含数百万发明家


谢谢。

注意:创建时的
子句只能在
合并
子句之后使用。因此,您的第二个选择应该是:

//Option 2
CREATE CONSTRAINT ON (i:Inventor) ASSERT i.hanID IS UNIQUE;
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///.../201609_HAN_NAME.txt" AS row
FIELDTERMINATOR '|'
MERGE (i:Inventor {hanID:row.HAN_ID})
ON CREATE SET i.name=row.Person_name_clean;
如果希望每个
Inventor
都具有唯一的
hanID
,并且输入文件可能包含数据库中已存在的
Inventor
s,则应使用选项2

注意:为确保数据库中的每个
Inventor
都具有唯一的
hanID
,还应创建唯一性约束:

CREATE CONSTRAINT ON (i:Inventor) ASSERT i.hanID IS UNIQUE;
感谢您关于“创建”的说明。我认为这意味着选项1是正确的选择,因为我遵循了明智的建议,分别导入inventor节点及其关联的han_ID,允许我在此步骤中使用“匹配”而不是“合并”,以提高速度。非常感谢你的帮助。
CREATE CONSTRAINT ON (i:Inventor) ASSERT i.hanID IS UNIQUE;