Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/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 cypher中每行的拆分操作_Neo4j_Cypher - Fatal编程技术网

Neo4j cypher中每行的拆分操作

Neo4j cypher中每行的拆分操作,neo4j,cypher,Neo4j,Cypher,我有这个疑问- LOAD CSV from "file:/C:/1m/movies1.csv" AS rows FIELDTERMINATOR ';' unwind rows as row foreach (r in row| SPLIT(r[3],"|") as genre merge (c:Genres { name: genre }) merge (m:Movies { MovieID: row[1] }) MERGE (m)-[:HAS_GENRE]->(c)) 排成这样-

我有这个疑问-

LOAD CSV from "file:/C:/1m/movies1.csv" AS rows 
FIELDTERMINATOR ';' unwind rows as row
foreach (r in row|
SPLIT(r[3],"|") as genre
merge (c:Genres { name: genre }) 
merge (m:Movies { MovieID: row[1] }) 
MERGE (m)-[:HAS_GENRE]->(c))
排成这样-

1;Toy Story (1995);Animation|Children's|Comedy
2;Jumanji (1995);Adventure|Children's|Fantasy
3;Grumpier Old Men (1995);Comedy|Romance
4;Waiting to Exhale (1995);Comedy|Drama
因此,每行的第三个元素都有多个值,我想用“|”分隔符展开这些值。但是我得到了错误-

Invalid input 'P': expected 't/T' or 'e/E' (line 4, column 2 (offset: 108))
"SPLIT(r[3],"|") as genre"

如何拆分每行中的第三项并将它们添加到一个节点中?

通常,每项工作都可以通过展开来完成

LOAD CSV from "file:/C:/1m/movies1.csv" AS rows FIELDTERMINATOR ';'
MERGE (movie:Movie {MovieID:rows[0]})
SET movie.name = rows[1]
WITH movie, SPLIT(rows[2], "|") AS genres
UNWIND genres AS g
MERGE (genre:Genre {name:g})
MERGE (movie)-[:HAS_GENRE]->(genre)
RETURN movie, genre;
收益率:


您还引用了
行[3]
,该行为空。csv文件只有3列,第三列是通过
行[2]
访问的,谢谢您的清理。相同的查询格式需要15分钟以上才能建立100万个关系(不需要占用大量内存或CPU时间)。有什么加速的建议吗?确保你有关于:Movie(MovieID)和:Genre(name)的索引。同时将其更改为执行
合并(movie:movie{MovieID:rows[0]})设置movie.name=rows[1]
。也可以考虑使用周期提交<代码> > <代码>。如果我已经在MeVIEID上定义了索引,为什么要设置这个集合,因为它在非索引属性上被磨合。