我有一个包含电影数据的自定义 CSV,其结构如下:
id,title,media_type,original_language,actor
1002185.0,A Million Miles Away,movie,en,Emma Fassler
447332.0,A Quiet Place,movie,en,Noah Jupe
我想在 Neo4j 中绘制彼此共享一部或多部电影(标题)的演员(名称),我加载数据的代码:
LOAD CSV WITH HEADERS FROM "file:///movies_neo_graph/part-00000-c5c5507e-5501-4adb-87fc-38be1d908076-c000.csv" AS row
CREATE (m:Movie)
SET m = row,
m.id = toInteger(row.id),
m.title = toString(row.title),
m.language = toString(row.original_language);
LOAD CSV WITH HEADERS FROM "file:///movies_neo_graph/part-00000-c5c5507e-5501-4adb-87fc-38be1d908076-c000.csv" AS row
CREATE (a:Actor)
SET a = row,
a.name = toString(row.actor),
a.movie_id = toInteger(row.id);
然后我设置节点 Movie 和 Actor 之间的关系:
MATCH (a:Actor),(m:Movie)
WHERE a.movie_id = m.id
CREATE (a)-[:ACTED_IN]->(m);
这是我第一次使用 Neo4J,我不知道如何执行查询,我尝试过
MATCH (a:Actor)-[:ACTED_IN]->(m:Movie)
RETURN a.name AS actor, COLLECT(DISTINCT m.title) AS movies_acted, COUNT(m.title) AS movies_cnt
ORDER BY movies_cnt DESC
LIMIT 50;
结果是表格而不是图表:
有什么想法吗?非常感谢您的帮助
由于您的查询未返回任何节点、关系或路径,因此无法进行图形可视化。
例如,如果您想在图形可视化中查看
a
节点,您的 RETURN
子句还必须包含 a
作为术语(而不仅仅是 a.name
,它只是一个字符串属性,而不是整个节点)。